# Seccion 7.1

## Ejercicio 7.1: conversion de base 10 a binario
### Numero 324
x <- 324
i <- floor(x)
f <- x - i
b <- c()
while(i > 0){
  b <- c(as.character(i %% 2), b)
  i <- i %/% 2
}
bin324 <- paste(b, collapse = "")
print(bin324)
## [1] "101000100"
# Numero 27
x <- 27
i <- floor(x)
f <- x - i
b <- c()
while(i > 0){
  b <- c(as.character(i %% 2), b)
  i <- i %/% 2
}
bin27 <- paste(b, collapse = "")
print(bin27)
## [1] "11011"
# Numero 1423
x <- 1423
i <- floor(x)
f <- x - i
b <- c()
while(i > 0){
  b <- c(as.character(i %% 2), b)
  i <- i %/% 2
}
bin1423 <- paste(b, collapse = "")
print(bin1423)
## [1] "10110001111"
# Numero 235.25
x <- 235.25
i <- floor(x)
f <- x - i
b <- c()
while(i > 0){
  b <- c(as.character(i %% 2), b)
  i <- i %/% 2
}
bf <- ""
for(k in 1:8){
  f <- f*2
  if(f >= 1){
    bf <- paste0(bf,"1")
    f <- f-1
  }else{
    bf <- paste0(bf,"0")
  }
}
bin235.25 <- paste0(paste(b,collapse=""),".",bf)
print(bin235.25)
## [1] "11101011.01000000"
# Numero 41.596
x <- 41.596
i <- floor(x)
f <- x - i
b <- c()
while(i > 0){
  b <- c(as.character(i %% 2), b)
  i <- i %/% 2
}
bf <- ""
for(k in 1:24){
  f <- f*2
  if(f >= 1){
    bf <- paste0(bf,"1")
    f <- f-1
  }else{
    bf <- paste0(bf,"0")
  }
}
bin41.596 <- paste0(paste(b,collapse=""),".",bf)
print(bin41.596)
## [1] "101001.100110001001001101110100"

# Seccion 7.2

Ejercicio 7.2.1 Historia de los Metodos Numericos “Investigacion”

Introducción

Los métodos numéricos constituyen un conjunto de técnicas matemáticas utilizadas para resolver problemas de manera aproximada mediante procedimientos iterativos o algoritmos. Su desarrollo ha sido fundamental para la evolución de la ciencia y la ingeniería, permitiendo resolver problemas que, por su complejidad, no podían abordarse mediante cálculos exactos. La historia de los métodos numéricos refleja la evolución del pensamiento matemático y tecnológico a lo largo de los siglos.

Orígenes en la Antigüedad

El uso de métodos aproximados se remonta a la Antigüedad. Civilizaciones como la babilónica y la egipcia desarrollaron procedimientos para realizar operaciones aritméticas, cálculo de áreas y volúmenes, y aproximaciones de raíces cuadradas. Los babilonios, por ejemplo, utilizaban tablas numéricas y algoritmos rudimentarios para resolver ecuaciones cuadráticas.

En Grecia, matemáticos como Arquímedes realizaron aproximaciones geométricas para calcular el área de figuras y el valor de π. Su método de agotamiento es considerado un precursor del cálculo integral, ya que consistía en aproximar áreas mediante polígonos inscritos y circunscritos.

Edad Media y Renacimiento

Durante la Edad Media, los métodos numéricos se desarrollaron lentamente debido a la limitada difusión del conocimiento matemático. Sin embargo, en el Renacimiento, el auge del comercio, la astronomía y la navegación impulsó la necesidad de cálculos más precisos. Matemáticos como Regiomontano y Cardano aplicaron técnicas para resolver ecuaciones algebraicas y cúbicas de manera aproximada.

En el siglo XVII, con la aparición del cálculo por Newton y Leibniz, se formalizaron muchas técnicas que sentaron las bases de los métodos numéricos modernos, como el método de Newton-Raphson para encontrar raíces de ecuaciones.

Siglo XVIII y XIX: Consolidación de los métodos

Durante los siglos XVIII y XIX, los métodos numéricos comenzaron a sistematizarse. Euler, Lagrange y Gauss realizaron contribuciones significativas. Euler desarrolló métodos para resolver ecuaciones diferenciales de manera aproximada, mientras que Gauss perfeccionó el método de eliminación para resolver sistemas de ecuaciones lineales, conocido hoy como eliminación de Gauss.

Asimismo, se desarrollaron técnicas de interpolación, aproximación de funciones mediante polinomios y métodos para la integración numérica, que resultaron fundamentales para la física y la ingeniería.

Siglo XX: La era de la computación

El siglo XX marcó un punto de inflexión en la historia de los métodos numéricos con la aparición de las computadoras electrónicas. Los algoritmos que antes requerían largos cálculos manuales pudieron implementarse en máquinas, aumentando la precisión y eficiencia de los resultados.

En esta época, se desarrollaron métodos iterativos para resolver sistemas lineales grandes, técnicas avanzadas para la resolución de ecuaciones diferenciales parciales, y algoritmos de optimización y análisis numérico que hoy se aplican en campos tan diversos como la ingeniería, la economía, la biología computacional y la inteligencia artificial.

Conclusión

La historia de los métodos numéricos es un reflejo de la evolución de la matemática aplicada y de la tecnología. Desde las aproximaciones geométricas de Arquímedes hasta los sofisticados algoritmos computacionales de la actualidad, estos métodos han sido esenciales para expandir nuestra capacidad de resolver problemas complejos y modelar fenómenos del mundo real. Su desarrollo continúa, adaptándose a nuevas necesidades y herramientas tecnológicas, consolidándose como una disciplina clave en la ciencia moderna.

Ejercicio 7.2.2 - conversiones de varios numeros

n <- c(246, 345.68, 4586632.2846, 984365.27463, 79905523)
for(num in n){
  x <- num
  i <- floor(x)
  f <- x - i
  b <- c()
  while(i > 0){
    b <- c(as.character(i %% 2), b)
    i <- i %/% 2
  }
  bf <- ""
  for(k in 1:30){
    f <- f*2
    if(f >= 1){
      bf <- paste0(bf,"1")
      f <- f-1
    }else{
      bf <- paste0(bf,"0")
    }
  }
  bin <- paste0(paste(b,collapse=""),".",bf)
  print(bin)
}
## [1] "11110110.000000000000000000000000000000"
## [1] "101011001.101011100001010001111010111000"
## [1] "10001011111110010001000.010010001101101110001011101011"
## [1] "11110000010100101101.010001100100111000100110110101"
## [1] "100110000110100001011110011.000000000000000000000000000000"

Describe exhaustivamente los tipos de errores que existen

1.1. Usar cadenas no válidas como binarios R no valida automáticamente si una cadena contiene solo 0 y 1.

1.2. Pasar objetos complejos cuando se espera texto o numéricos Si se pasa una lista, data frame o factor en lugar de un string o número, R falla.

1.3. Factores convertidos implícitamente a enteros Cuando un factor con niveles “0” y “1” se usa directamente, R convierte los niveles en enteros internos (1, 2, …).

  1. Errores por rangos de valores (overflow/underflow)

2.1. Binarios demasiado largos para convertirse a integer strtoi() trabaja con enteros de 32 bits. Si un binario excede ese rango (≈ 2^31), el resultado es NA.

2.2. Números decimales demasiado grandes antes de convertirlos as.binary() de paquetes como binaryLogic también puede fallar por límites del tipo de dato.

  1. Errores de función incorrecta o mal uso de funciones 3.1. Usar as.numeric() pensando que convierte a otra base

as.numeric() solo convierte tipos, NO hace conversiones de base.

3.2. Confundir strtoi() con funciones del paquete binaryLogic

Muchos personas mezclan funciones base de R con funciones externas

3.3Parámetros mal especificados

Por ejemplo, strtoi(x, base = 10, …) cuando se pretendía base 2.

  1. Errores de sintaxis (syntax errors) Los errores de sintaxis ocurren cuando el código para convertir bases está mal escrito.

  2. Errores al convertir números binarios negativos

R no interpreta el signo dentro del string del binario.

  1. Errores de codificación o caracteres invisibles

Al copiar binarios desde archivos, páginas web o Excel:

6.1. Caracteres invisibles

Incluyen: espacios tabulaciones saltos de línea BOM UTF-8

  1. Errores de interpretación (usar funciones conceptualmente incorrectas) 7.1. Intentar convertir números no enteros

  2. Errores de lógica al construir binarios Estos no arrojan errores en R, pero sí producen resultados incorrectos.

8.1. Invertir el orden de bits Trabajar de derecha a izquierda o viceversa.

8.2. Usar divisiones enteras incorrectamente Por ejemplo, usar 10 %/% 2 cuando se necesita 10 %% 2.

# Seccion 7.3

## Ejercicio 7.3.1
gauss<- function(A, b, tol = 1e-12) {
  n <- nrow(A)
  M <- cbind(A,b)
  
  for (k in 1:(n-1)) {
    # Pivoteo parcial: buscar el máximo en la columna k desde fila k
    max_row <- which.max(abs(M[k:n, k])) + (k-1)
    if (abs(M[max_row, k]) < tol) stop("Matriz singular o pivote cero")
    if (max_row != k) M[c(k,max_row), ] <- M[c(max_row,k), ]
    
    for (i in (k+1):n) {
      factor <- M[i,k]/M[k,k]
      M[i,k:(n+1)] <- M[i,k:(n+1)] - factor*M[k,k:(n+1)]
    }
  }
  
  # Sustitución regresiva
  x <- numeric(n)
  for (i in n:1) {
    if (abs(M[i,i]) < tol) stop("Matriz singular en sustitución")
    x[i] <- (M[i,n+1] - sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
  }
  return(x)
}

# Ejemplo 7.3.1 seguro
A <- matrix(c(1, -2, 0.5,
              -2, 5, -1.5,
              -0.2, 1.75, -1),3,byrow=TRUE)
b <- c(-5,0,10)
gauss(A,b)
## [1] NA NA NA

Ejercicio 7.3.2

A <- matrix(c(3, -1, 0, 6,
              4, 2, -1, -5,
              -5, 1, -3, 0,
              0, 10, -4, 7),4,byrow=TRUE)
b <- c(2.3,6.9,-36,-36)
cat("\n=== 7.3.2 ===\n")
## 
## === 7.3.2 ===
gauss(A,b)
## [1] NA NA NA NA

Ejercicio 7.3.3

.3
## [1] 0.3
A <- matrix(c(0.003, 59.14,
              5.291, -6.13),2,byrow=TRUE)
b <- c(59.17,46.78)
cat("\n=== 7.3.3 ===\n")
## 
## === 7.3.3 ===
gauss(A,b)
## [1] NA NA

Ejercicio 7.3.4

A <- matrix(c(4,2,0,
              2,3,1,
              0,1,2.5),3,byrow=TRUE)
b <- c(2,-1,3)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Ejercicio 7.3.5

A <- matrix(c(3,-0.1,-0.2,
              0.1,7,-0.3,
              0.3,-0.2,10),3,byrow=TRUE)
b <- c(7.85,-19.3,71.4)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Seccion 7.3.6

A <- matrix(c(1,2,-1,
              2,1,1,
              1,-1,2),3,byrow=TRUE)
b <- c(4,5,6)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Seccion 7.3.7

A <- matrix(c(2,1,-1,
              -3,-1,2,
              -2,1,2),3,byrow=TRUE)
b <- c(8,-11,-3)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Seccion 7.3.8

A <- matrix(c(1,1,1,
              0,2,5,
              2,5,-1),3,byrow=TRUE)
b <- c(6,-4,27)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Seccion 7.3.9

A <- matrix(c(4,-2,1,
              -2,4,-2,
              1,-2,3),3,byrow=TRUE)
b <- c(1,4,2)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

Seccion 7.3.10

A <- matrix(c(3,-1,2,
            1,0,1,
              4,2,-1),3,byrow=TRUE)
b <- c(5,2,7)
n <- nrow(A)
M <- cbind(A,b)
for(k in 1:(n-1)){
  for(i in (k+1):n){
    f <- M[i,k]/M[k,k]
    M[i,k:ncol(M)] <- M[i,k:ncol(M)] - f*M[k,k:ncol(M)]
  }
}
x <- numeric(n)
for(i in n:1){
  x[i] <- (M[i,n+1]-sum(M[i,(i+1):n]*x[(i+1):n]))/M[i,i]
}
print(x)
## [1] NA NA NA

# Seccion 7.4

gauss <- function(A, b, tol = .Machine$double.eps) {
  n <- nrow(A)
  M <- cbind(A, b)
  
  cat("Matriz inicial [A | b]:\n")
  print(round(M, 8)); cat("\n")
  
  for (k in 1:(n-1)) {
    # Pivoteo parcial
    i_max <- which.max(abs(M[k:n, k])) + k - 1
    if (abs(M[i_max, k]) < tol) stop(sprintf("Sistema singular en columna %d", k))
    if (i_max != k) {
      tmp <- M[k, ]; M[k, ] <- M[i_max, ]; M[i_max, ] <- tmp
      cat(sprintf("Intercambio de filas R%d <-> R%d\n", k, i_max))
      print(round(M, 6)); cat("\n")
    }
    
    # Eliminación
    p <- M[k,k]
    for (i in (k+1):n) {
      f <- M[i,k] / p
      M[i, k:(n+1)] <- M[i, k:(n+1)] - f * M[k, k:(n+1)]
      cat(sprintf("R%d <- R%d - (%.6g)*R%d\n", i, i, f, k))
      print(round(M, 6)); cat("\n")
    }
  }
  
  cat("Matriz triangular [U | c]:\n")
  print(round(M, 6)); cat("\n")
  
  # Sustitución regresiva
  x <- numeric(n)
  for (i in n:1) {
    s <- if (i < n) sum(M[i, (i+1):n] * x[(i+1):n]) else 0
    x[i] <- (M[i, n+1] - s) / M[i,i]
    cat(sprintf("x[%d] = (%.6g - %.6g)/%.6g = %.6g\n", i, M[i, n+1], s, M[i,i], x[i]))
  }
  
  cat("\nSolución x:\n")
  print(round(x, 6))
  
  r <- A %*% x - b
  cat("\nResiduo:\n")
  print(round(r, 6))
  
  list(x = x, resid = r, U = M)
}


# Ejercicio 7.4.1
cat("\n=== Ejercicio 7.4.1 ===\n")
## 
## === Ejercicio 7.4.1 ===
A1 <- matrix(c(0.4, -1.5, 0.75,
               -0.5, -15, 10,
               -10, -9, 2.5), 3, byrow=TRUE)
b1 <- c(-20, -10, 30)
res1 <- gauss(A1, b1)
## Matriz inicial [A | b]:
##                          b
## [1,]   0.4  -1.5  0.75 -20
## [2,]  -0.5 -15.0 10.00 -10
## [3,] -10.0  -9.0  2.50  30
## 
## Intercambio de filas R1 <-> R3
##                          b
## [1,] -10.0  -9.0  2.50  30
## [2,]  -0.5 -15.0 10.00 -10
## [3,]   0.4  -1.5  0.75 -20
## 
## R2 <- R2 - (0.05)*R1
##                             b
## [1,] -10.0  -9.00 2.500  30.0
## [2,]   0.0 -14.55 9.875 -11.5
## [3,]   0.4  -1.50 0.750 -20.0
## 
## R3 <- R3 - (-0.04)*R1
##                           b
## [1,] -10  -9.00 2.500  30.0
## [2,]   0 -14.55 9.875 -11.5
## [3,]   0  -1.86 0.850 -18.8
## 
## R3 <- R3 - (0.127835)*R2
##                                  b
## [1,] -10  -9.00  2.500000  30.0000
## [2,]   0 -14.55  9.875000 -11.5000
## [3,]   0   0.00 -0.412371 -17.3299
## 
## Matriz triangular [U | c]:
##                                  b
## [1,] -10  -9.00  2.500000  30.0000
## [2,]   0 -14.55  9.875000 -11.5000
## [3,]   0   0.00 -0.412371 -17.3299
## 
## x[3] = (-17.3299 - 0)/-0.412371 = 42.025
## x[2] = (-11.5 - 414.997)/-14.55 = 29.3125
## x[1] = (30 - -158.75)/-10 = -18.875
## 
## Solución x:
## [1] -18.8750  29.3125  42.0250
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio 7.4.2

cat("\n=== Ejercicio 7.4.2 ===\n")
## 
## === Ejercicio 7.4.2 ===
A2 <- matrix(c(5, -8, 1,
               -2, 6, -9,
               3, -5, 2), 3, byrow = TRUE)
b2 <- c(-71, 134, -58)
res2 <- gauss(A2, b2)
## Matriz inicial [A | b]:
##                 b
## [1,]  5 -8  1 -71
## [2,] -2  6 -9 134
## [3,]  3 -5  2 -58
## 
## R2 <- R2 - (-0.4)*R1
##                      b
## [1,] 5 -8.0  1.0 -71.0
## [2,] 0  2.8 -8.6 105.6
## [3,] 3 -5.0  2.0 -58.0
## 
## R3 <- R3 - (0.6)*R1
##                      b
## [1,] 5 -8.0  1.0 -71.0
## [2,] 0  2.8 -8.6 105.6
## [3,] 0 -0.2  1.4 -15.4
## 
## R3 <- R3 - (-0.0714286)*R2
##                                b
## [1,] 5 -8.0  1.000000 -71.000000
## [2,] 0  2.8 -8.600000 105.600000
## [3,] 0  0.0  0.785714  -7.857143
## 
## Matriz triangular [U | c]:
##                                b
## [1,] 5 -8.0  1.000000 -71.000000
## [2,] 0  2.8 -8.600000 105.600000
## [3,] 0  0.0  0.785714  -7.857143
## 
## x[3] = (-7.85714 - 0)/0.785714 = -10
## x[2] = (105.6 - 86)/2.8 = 7
## x[1] = (-71 - -66)/5 = -1
## 
## Solución x:
## [1]  -1   7 -10
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio 7.4.3

cat("\n=== Ejercicio 7.4.3 ===\n")
## 
## === Ejercicio 7.4.3 ===
A3 <- matrix(c(0.003, 59.14,
               5.291, -6.130), 2, byrow = TRUE)
b3 <- c(59.17, 46.7)
res3 <- gauss(A3, b3)
## Matriz inicial [A | b]:
##                      b
## [1,] 0.003 59.14 59.17
## [2,] 5.291 -6.13 46.70
## 
## Intercambio de filas R1 <-> R2
##                      b
## [1,] 5.291 -6.13 46.70
## [2,] 0.003 59.14 59.17
## 
## R2 <- R2 - (0.000567001)*R1
##                            b
## [1,] 5.291 -6.13000 46.70000
## [2,] 0.000 59.14348 59.14352
## 
## Matriz triangular [U | c]:
##                            b
## [1,] 5.291 -6.13000 46.70000
## [2,] 0.000 59.14348 59.14352
## 
## x[2] = (59.1435 - 0)/59.1435 = 1
## x[1] = (46.7 - -6.13)/5.291 = 9.98488
## 
## Solución x:
## [1] 9.984881 1.000001
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0

Ejercicio 7.4.4

cat("\n=== Ejercicio 7.4.4 ===\n")
## 
## === Ejercicio 7.4.4 ===
A4 <- matrix(c(0, -1, 4, -1,
               -1, 4, -1, 0,
               -1, 0, -1, 4,
               4, -1, 0, 0), 4, byrow = TRUE)
b4 <- c(-1, 2, 4, 10)
res4 <- gauss(A4, b4)
## Matriz inicial [A | b]:
##                   b
## [1,]  0 -1  4 -1 -1
## [2,] -1  4 -1  0  2
## [3,] -1  0 -1  4  4
## [4,]  4 -1  0  0 10
## 
## Intercambio de filas R1 <-> R4
##                   b
## [1,]  4 -1  0  0 10
## [2,] -1  4 -1  0  2
## [3,] -1  0 -1  4  4
## [4,]  0 -1  4 -1 -1
## 
## R2 <- R2 - (-0.25)*R1
##                        b
## [1,]  4 -1.00  0  0 10.0
## [2,]  0  3.75 -1  0  4.5
## [3,] -1  0.00 -1  4  4.0
## [4,]  0 -1.00  4 -1 -1.0
## 
## R3 <- R3 - (-0.25)*R1
##                       b
## [1,] 4 -1.00  0  0 10.0
## [2,] 0  3.75 -1  0  4.5
## [3,] 0 -0.25 -1  4  6.5
## [4,] 0 -1.00  4 -1 -1.0
## 
## R4 <- R4 - (0)*R1
##                       b
## [1,] 4 -1.00  0  0 10.0
## [2,] 0  3.75 -1  0  4.5
## [3,] 0 -0.25 -1  4  6.5
## [4,] 0 -1.00  4 -1 -1.0
## 
## R3 <- R3 - (-0.0666667)*R2
##                              b
## [1,] 4 -1.00  0.000000  0 10.0
## [2,] 0  3.75 -1.000000  0  4.5
## [3,] 0  0.00 -1.066667  4  6.8
## [4,] 0 -1.00  4.000000 -1 -1.0
## 
## R4 <- R4 - (-0.266667)*R2
##                              b
## [1,] 4 -1.00  0.000000  0 10.0
## [2,] 0  3.75 -1.000000  0  4.5
## [3,] 0  0.00 -1.066667  4  6.8
## [4,] 0  0.00  3.733333 -1  0.2
## 
## Intercambio de filas R3 <-> R4
##                              b
## [1,] 4 -1.00  0.000000  0 10.0
## [2,] 0  3.75 -1.000000  0  4.5
## [3,] 0  0.00  3.733333 -1  0.2
## [4,] 0  0.00 -1.066667  4  6.8
## 
## R4 <- R4 - (-0.285714)*R3
##                                          b
## [1,] 4 -1.00  0.000000  0.000000 10.000000
## [2,] 0  3.75 -1.000000  0.000000  4.500000
## [3,] 0  0.00  3.733333 -1.000000  0.200000
## [4,] 0  0.00  0.000000  3.714286  6.857143
## 
## Matriz triangular [U | c]:
##                                          b
## [1,] 4 -1.00  0.000000  0.000000 10.000000
## [2,] 0  3.75 -1.000000  0.000000  4.500000
## [3,] 0  0.00  3.733333 -1.000000  0.200000
## [4,] 0  0.00  0.000000  3.714286  6.857143
## 
## x[4] = (6.85714 - 0)/3.71429 = 1.84615
## x[3] = (0.2 - -1.84615)/3.73333 = 0.548077
## x[2] = (4.5 - -0.548077)/3.75 = 1.34615
## x[1] = (10 - -1.34615)/4 = 2.83654
## 
## Solución x:
## [1] 2.836538 1.346154 0.548077 1.846154
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.4.5

cat("\n=== Ejercicio 7.4.5 ===\n")
## 
## === Ejercicio 7.4.5 ===
A5 <- matrix(c(0.00031, 1.0,
               1.00045534, 1.00034333), 2, byrow = TRUE)
b5 <- c(3.0, 7.0)
res5 <- gauss(A5, b5)
## Matriz inicial [A | b]:
##                        b
## [1,] 0.000310 1.000000 3
## [2,] 1.000455 1.000343 7
## 
## Intercambio de filas R1 <-> R2
##                        b
## [1,] 1.000455 1.000343 7
## [2,] 0.000310 1.000000 3
## 
## R2 <- R2 - (0.000309859)*R1
##                               b
## [1,] 1.000455 1.000343 7.000000
## [2,] 0.000000 0.999690 2.997831
## 
## Matriz triangular [U | c]:
##                               b
## [1,] 1.000455 1.000343 7.000000
## [2,] 0.000000 0.999690 2.997831
## 
## x[2] = (2.99783 - 0)/0.99969 = 2.99876
## x[1] = (7 - 2.99979)/1.00046 = 3.99839
## 
## Solución x:
## [1] 3.998389 2.998760
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0

Ejercicio 7.4.6

cat("\n=== Ejercicio 7.4.6 ===\n")
## 
## === Ejercicio 7.4.6 ===
A6 <- matrix(c(14, 14, -9, 3, -5,
               14, 52, -15, 2, -32,
               -9, -15, 36, -5, 16,
               3, 2, -5, 47, 49,
               -5, 32, 16, 49, 79), 5, byrow = TRUE)
b6 <- c(-15, -100, 106, 329, 463)
res6 <- gauss(A6, b6)
## Matriz inicial [A | b]:
##                           b
## [1,] 14  14  -9  3  -5  -15
## [2,] 14  52 -15  2 -32 -100
## [3,] -9 -15  36 -5  16  106
## [4,]  3   2  -5 47  49  329
## [5,] -5  32  16 49  79  463
## 
## R2 <- R2 - (1)*R1
##                         b
## [1,] 14  14 -9  3  -5 -15
## [2,]  0  38 -6 -1 -27 -85
## [3,] -9 -15 36 -5  16 106
## [4,]  3   2 -5 47  49 329
## [5,] -5  32 16 49  79 463
## 
## R3 <- R3 - (-0.642857)*R1
##                                                 b
## [1,] 14 14 -9.00000  3.000000  -5.00000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.00000 -85.00000
## [3,]  0 -6 30.21429 -3.071429  12.78571  96.35714
## [4,]  3  2 -5.00000 47.000000  49.00000 329.00000
## [5,] -5 32 16.00000 49.000000  79.00000 463.00000
## 
## R4 <- R4 - (0.214286)*R1
##                                                  b
## [1,] 14 14 -9.000000  3.000000  -5.00000 -15.00000
## [2,]  0 38 -6.000000 -1.000000 -27.00000 -85.00000
## [3,]  0 -6 30.214286 -3.071429  12.78571  96.35714
## [4,]  0 -1 -3.071429 46.357143  50.07143 332.21429
## [5,] -5 32 16.000000 49.000000  79.00000 463.00000
## 
## R5 <- R5 - (-0.357143)*R1
##                                                  b
## [1,] 14 14 -9.000000  3.000000  -5.00000 -15.00000
## [2,]  0 38 -6.000000 -1.000000 -27.00000 -85.00000
## [3,]  0 -6 30.214286 -3.071429  12.78571  96.35714
## [4,]  0 -1 -3.071429 46.357143  50.07143 332.21429
## [5,]  0 37 12.785714 50.071429  77.21429 457.64286
## 
## R3 <- R3 - (-0.157895)*R2
##                                                   b
## [1,] 14 14 -9.000000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.000000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.266917 -3.229323   8.522556  82.93609
## [4,]  0 -1 -3.071429 46.357143  50.071429 332.21429
## [5,]  0 37 12.785714 50.071429  77.214286 457.64286
## 
## R4 <- R4 - (-0.0263158)*R2
##                                                   b
## [1,] 14 14 -9.000000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.000000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.266917 -3.229323   8.522556  82.93609
## [4,]  0  0 -3.229323 46.330827  49.360902 329.97744
## [5,]  0 37 12.785714 50.071429  77.214286 457.64286
## 
## R5 <- R5 - (0.973684)*R2
##                                                   b
## [1,] 14 14 -9.000000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.000000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.266917 -3.229323   8.522556  82.93609
## [4,]  0  0 -3.229323 46.330827  49.360902 329.97744
## [5,]  0  0 18.627820 51.045113 103.503759 540.40602
## 
## R4 <- R4 - (-0.11034)*R3
##                                                  b
## [1,] 14 14 -9.00000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.26692 -3.229323   8.522556  82.93609
## [4,]  0  0  0.00000 45.974502  50.301285 339.12865
## [5,]  0  0 18.62782 51.045113 103.503759 540.40602
## 
## R5 <- R5 - (0.63648)*R3
##                                                  b
## [1,] 14 14 -9.00000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.26692 -3.229323   8.522556  82.93609
## [4,]  0  0  0.00000 45.974502  50.301285 339.12865
## [5,]  0  0  0.00000 53.100514  98.079319 487.61882
## 
## Intercambio de filas R4 <-> R5
##                                                  b
## [1,] 14 14 -9.00000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.26692 -3.229323   8.522556  82.93609
## [4,]  0  0  0.00000 53.100514  98.079319 487.61882
## [5,]  0  0  0.00000 45.974502  50.301285 339.12865
## 
## R5 <- R5 - (0.865801)*R4
##                                                  b
## [1,] 14 14 -9.00000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.26692 -3.229323   8.522556  82.93609
## [4,]  0  0  0.00000 53.100514  98.079319 487.61882
## [5,]  0  0  0.00000  0.000000 -34.615933 -83.05244
## 
## Matriz triangular [U | c]:
##                                                  b
## [1,] 14 14 -9.00000  3.000000  -5.000000 -15.00000
## [2,]  0 38 -6.00000 -1.000000 -27.000000 -85.00000
## [3,]  0  0 29.26692 -3.229323   8.522556  82.93609
## [4,]  0  0  0.00000 53.100514  98.079319 487.61882
## [5,]  0  0  0.00000  0.000000 -34.615933 -83.05244
## 
## x[5] = (-83.0524 - 0)/-34.6159 = 2.39925
## x[4] = (487.619 - 235.317)/53.1005 = 4.7514
## x[3] = (82.9361 - 5.10399)/29.2669 = 2.65939
## x[2] = (-85 - -85.4876)/38 = 0.0128316
## x[1] = (-15 - -21.4969)/14 = 0.464067
## 
## Solución x:
## [1] 0.464067 0.012832 2.659388 4.751396 2.399255
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0
## [5,]    0

Ejercicio 7.4.7

cat("\n=== Ejercicio 7.4.7 ===\n")
## 
## === Ejercicio 7.4.7 ===
A7 <- matrix(c(1/4, 1/5, 1/6,
               1/4, 1/3, 1/5,
               1/2, 1,   2), 3, byrow = TRUE)
b7 <- c(9, 8, 8)
res7 <- gauss(A7, b7)
## Matriz inicial [A | b]:
##                               b
## [1,] 0.25 0.2000000 0.1666667 9
## [2,] 0.25 0.3333333 0.2000000 8
## [3,] 0.50 1.0000000 2.0000000 8
## 
## Intercambio de filas R1 <-> R3
##                             b
## [1,] 0.50 1.000000 2.000000 8
## [2,] 0.25 0.333333 0.200000 8
## [3,] 0.25 0.200000 0.166667 9
## 
## R2 <- R2 - (0.5)*R1
##                               b
## [1,] 0.50  1.000000  2.000000 8
## [2,] 0.00 -0.166667 -0.800000 4
## [3,] 0.25  0.200000  0.166667 9
## 
## R3 <- R3 - (0.5)*R1
##                              b
## [1,] 0.5  1.000000  2.000000 8
## [2,] 0.0 -0.166667 -0.800000 4
## [3,] 0.0 -0.300000 -0.833333 5
## 
## Intercambio de filas R2 <-> R3
##                              b
## [1,] 0.5  1.000000  2.000000 8
## [2,] 0.0 -0.300000 -0.833333 5
## [3,] 0.0 -0.166667 -0.800000 4
## 
## R3 <- R3 - (0.555556)*R2
##                                b
## [1,] 0.5  1.0  2.000000 8.000000
## [2,] 0.0 -0.3 -0.833333 5.000000
## [3,] 0.0  0.0 -0.337037 1.222222
## 
## Matriz triangular [U | c]:
##                                b
## [1,] 0.5  1.0  2.000000 8.000000
## [2,] 0.0 -0.3 -0.833333 5.000000
## [3,] 0.0  0.0 -0.337037 1.222222
## 
## x[3] = (1.22222 - 0)/-0.337037 = -3.62637
## x[2] = (5 - 3.02198)/-0.3 = -6.59341
## x[1] = (8 - -13.8462)/0.5 = 43.6923
## 
## Solución x:
## [1] 43.692308 -6.593407 -3.626374
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

##Ejercicio 7.4.8

cat("\n=== Ejercicio 7.4.8 ===\n")
## 
## === Ejercicio 7.4.8 ===
A8 <- matrix(c(1, 1/2, 1/3, 1/4,
               1/2, 1/3, 1/4, 1/5,
               1/3, 1/4, 1/5, 1/6,
               1/4, 1/5, 1/6, 1/7), 4, byrow = TRUE)
b8 <- c(1/6, 1/7, 1/8, 1/9)
res8 <- gauss(A8, b8)
## Matriz inicial [A | b]:
##                                                      b
## [1,] 1.0000000 0.5000000 0.3333333 0.2500000 0.1666667
## [2,] 0.5000000 0.3333333 0.2500000 0.2000000 0.1428571
## [3,] 0.3333333 0.2500000 0.2000000 0.1666667 0.1250000
## [4,] 0.2500000 0.2000000 0.1666667 0.1428571 0.1111111
## 
## R2 <- R2 - (0.5)*R1
##                                                 b
## [1,] 1.000000 0.500000 0.333333 0.250000 0.166667
## [2,] 0.000000 0.083333 0.083333 0.075000 0.059524
## [3,] 0.333333 0.250000 0.200000 0.166667 0.125000
## [4,] 0.250000 0.200000 0.166667 0.142857 0.111111
## 
## R3 <- R3 - (0.333333)*R1
##                                             b
## [1,] 1.00 0.500000 0.333333 0.250000 0.166667
## [2,] 0.00 0.083333 0.083333 0.075000 0.059524
## [3,] 0.00 0.083333 0.088889 0.083333 0.069444
## [4,] 0.25 0.200000 0.166667 0.142857 0.111111
## 
## R4 <- R4 - (0.25)*R1
##                                          b
## [1,] 1 0.500000 0.333333 0.250000 0.166667
## [2,] 0 0.083333 0.083333 0.075000 0.059524
## [3,] 0 0.083333 0.088889 0.083333 0.069444
## [4,] 0 0.075000 0.083333 0.080357 0.069444
## 
## Intercambio de filas R2 <-> R3
##                                          b
## [1,] 1 0.500000 0.333333 0.250000 0.166667
## [2,] 0 0.083333 0.088889 0.083333 0.069444
## [3,] 0 0.083333 0.083333 0.075000 0.059524
## [4,] 0 0.075000 0.083333 0.080357 0.069444
## 
## R3 <- R3 - (1)*R2
##                                             b
## [1,] 1 0.500000  0.333333  0.250000  0.166667
## [2,] 0 0.083333  0.088889  0.083333  0.069444
## [3,] 0 0.000000 -0.005556 -0.008333 -0.009921
## [4,] 0 0.075000  0.083333  0.080357  0.069444
## 
## R4 <- R4 - (0.9)*R2
##                                             b
## [1,] 1 0.500000  0.333333  0.250000  0.166667
## [2,] 0 0.083333  0.088889  0.083333  0.069444
## [3,] 0 0.000000 -0.005556 -0.008333 -0.009921
## [4,] 0 0.000000  0.003333  0.005357  0.006944
## 
## R4 <- R4 - (-0.6)*R3
##                                             b
## [1,] 1 0.500000  0.333333  0.250000  0.166667
## [2,] 0 0.083333  0.088889  0.083333  0.069444
## [3,] 0 0.000000 -0.005556 -0.008333 -0.009921
## [4,] 0 0.000000  0.000000  0.000357  0.000992
## 
## Matriz triangular [U | c]:
##                                             b
## [1,] 1 0.500000  0.333333  0.250000  0.166667
## [2,] 0 0.083333  0.088889  0.083333  0.069444
## [3,] 0 0.000000 -0.005556 -0.008333 -0.009921
## [4,] 0 0.000000  0.000000  0.000357  0.000992
## 
## x[4] = (0.000992063 - 0)/0.000357143 = 2.77778
## x[3] = (-0.00992063 - -0.0231481)/-0.00555556 = -2.38095
## x[2] = (0.0694444 - 0.0198413)/0.0833333 = 0.595238
## x[1] = (0.166667 - 0.198413)/1 = -0.031746
## 
## Solución x:
## [1] -0.031746  0.595238 -2.380952  2.777778
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.4.9

cat("\n=== Ejercicio 7.4.9 ===\n")
## 
## === Ejercicio 7.4.9 ===
A9 <- matrix(c(
  2,  1, -1,  1, -3,
  1,  0,  2, -1,  1,
  0, -2, -1,  1, -1,
  3,  1, -4,  0,  5,
  1, -1, -1, -1,  1
), nrow = 5, byrow = TRUE)
b9 <- c(7, 2, -5, 6, 3)
res9 <- gauss(A9, b9)
## Matriz inicial [A | b]:
##                     b
## [1,] 2  1 -1  1 -3  7
## [2,] 1  0  2 -1  1  2
## [3,] 0 -2 -1  1 -1 -5
## [4,] 3  1 -4  0  5  6
## [5,] 1 -1 -1 -1  1  3
## 
## Intercambio de filas R1 <-> R4
##                     b
## [1,] 3  1 -4  0  5  6
## [2,] 1  0  2 -1  1  2
## [3,] 0 -2 -1  1 -1 -5
## [4,] 2  1 -1  1 -3  7
## [5,] 1 -1 -1 -1  1  3
## 
## R2 <- R2 - (0.333333)*R1
##                                          b
## [1,] 3  1.000000 -4.000000  0  5.000000  6
## [2,] 0 -0.333333  3.333333 -1 -0.666667  0
## [3,] 0 -2.000000 -1.000000  1 -1.000000 -5
## [4,] 2  1.000000 -1.000000  1 -3.000000  7
## [5,] 1 -1.000000 -1.000000 -1  1.000000  3
## 
## R3 <- R3 - (0)*R1
##                                          b
## [1,] 3  1.000000 -4.000000  0  5.000000  6
## [2,] 0 -0.333333  3.333333 -1 -0.666667  0
## [3,] 0 -2.000000 -1.000000  1 -1.000000 -5
## [4,] 2  1.000000 -1.000000  1 -3.000000  7
## [5,] 1 -1.000000 -1.000000 -1  1.000000  3
## 
## R4 <- R4 - (0.666667)*R1
##                                          b
## [1,] 3  1.000000 -4.000000  0  5.000000  6
## [2,] 0 -0.333333  3.333333 -1 -0.666667  0
## [3,] 0 -2.000000 -1.000000  1 -1.000000 -5
## [4,] 0  0.333333  1.666667  1 -6.333333  3
## [5,] 1 -1.000000 -1.000000 -1  1.000000  3
## 
## R5 <- R5 - (0.333333)*R1
##                                          b
## [1,] 3  1.000000 -4.000000  0  5.000000  6
## [2,] 0 -0.333333  3.333333 -1 -0.666667  0
## [3,] 0 -2.000000 -1.000000  1 -1.000000 -5
## [4,] 0  0.333333  1.666667  1 -6.333333  3
## [5,] 0 -1.333333  0.333333 -1 -0.666667  1
## 
## Intercambio de filas R2 <-> R3
##                                          b
## [1,] 3  1.000000 -4.000000  0  5.000000  6
## [2,] 0 -2.000000 -1.000000  1 -1.000000 -5
## [3,] 0 -0.333333  3.333333 -1 -0.666667  0
## [4,] 0  0.333333  1.666667  1 -6.333333  3
## [5,] 0 -1.333333  0.333333 -1 -0.666667  1
## 
## R3 <- R3 - (0.166667)*R2
##                                                        b
## [1,] 3  1.000000 -4.000000  0.000000  5.000000  6.000000
## [2,] 0 -2.000000 -1.000000  1.000000 -1.000000 -5.000000
## [3,] 0  0.000000  3.500000 -1.166667 -0.500000  0.833333
## [4,] 0  0.333333  1.666667  1.000000 -6.333333  3.000000
## [5,] 0 -1.333333  0.333333 -1.000000 -0.666667  1.000000
## 
## R4 <- R4 - (-0.166667)*R2
##                                                        b
## [1,] 3  1.000000 -4.000000  0.000000  5.000000  6.000000
## [2,] 0 -2.000000 -1.000000  1.000000 -1.000000 -5.000000
## [3,] 0  0.000000  3.500000 -1.166667 -0.500000  0.833333
## [4,] 0  0.000000  1.500000  1.166667 -6.500000  2.166667
## [5,] 0 -1.333333  0.333333 -1.000000 -0.666667  1.000000
## 
## R5 <- R5 - (0.666667)*R2
##                                       b
## [1,] 3  1 -4.0  0.000000  5.0  6.000000
## [2,] 0 -2 -1.0  1.000000 -1.0 -5.000000
## [3,] 0  0  3.5 -1.166667 -0.5  0.833333
## [4,] 0  0  1.5  1.166667 -6.5  2.166667
## [5,] 0  0  1.0 -1.666667  0.0  4.333333
## 
## R4 <- R4 - (0.428571)*R3
##                                            b
## [1,] 3  1 -4.0  0.000000  5.000000  6.000000
## [2,] 0 -2 -1.0  1.000000 -1.000000 -5.000000
## [3,] 0  0  3.5 -1.166667 -0.500000  0.833333
## [4,] 0  0  0.0  1.666667 -6.285714  1.809524
## [5,] 0  0  1.0 -1.666667  0.000000  4.333333
## 
## R5 <- R5 - (0.285714)*R3
##                                            b
## [1,] 3  1 -4.0  0.000000  5.000000  6.000000
## [2,] 0 -2 -1.0  1.000000 -1.000000 -5.000000
## [3,] 0  0  3.5 -1.166667 -0.500000  0.833333
## [4,] 0  0  0.0  1.666667 -6.285714  1.809524
## [5,] 0  0  0.0 -1.333333  0.142857  4.095238
## 
## R5 <- R5 - (-0.8)*R4
##                                            b
## [1,] 3  1 -4.0  0.000000  5.000000  6.000000
## [2,] 0 -2 -1.0  1.000000 -1.000000 -5.000000
## [3,] 0  0  3.5 -1.166667 -0.500000  0.833333
## [4,] 0  0  0.0  1.666667 -6.285714  1.809524
## [5,] 0  0  0.0  0.000000 -4.885714  5.542857
## 
## Matriz triangular [U | c]:
##                                            b
## [1,] 3  1 -4.0  0.000000  5.000000  6.000000
## [2,] 0 -2 -1.0  1.000000 -1.000000 -5.000000
## [3,] 0  0  3.5 -1.166667 -0.500000  0.833333
## [4,] 0  0  0.0  1.666667 -6.285714  1.809524
## [5,] 0  0  0.0  0.000000 -4.885714  5.542857
## 
## x[5] = (5.54286 - 0)/-4.88571 = -1.1345
## x[4] = (1.80952 - 7.13116)/1.66667 = -3.19298
## x[3] = (0.833333 - 4.2924)/3.5 = -0.988304
## x[2] = (-5 - -1.07018)/-2 = 1.96491
## x[1] = (6 - 0.245614)/3 = 1.91813
## 
## Solución x:
## [1]  1.918129  1.964912 -0.988304 -3.192982 -1.134503
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0
## [5,]    0

Ejercicio 7.4.10

cat("\n=== Ejercicio 7.4.10 ===\n")
## 
## === Ejercicio 7.4.10 ===
A10 <- matrix(c(
  3.333, 15920, -10.333,
  2.222, 16.71, 0,
  1.5611, 5.1791, 1.6852
), nrow=3, byrow=TRUE)
b10 <- c(15913, 28.544, 8.4254)
res10 <- gauss(A10, b10)
## Matriz inicial [A | b]:
##                                          b
## [1,] 3.3330 15920.0000 -10.3330 15913.0000
## [2,] 2.2220    16.7100   0.0000    28.5440
## [3,] 1.5611     5.1791   1.6852     8.4254
## 
## R2 <- R2 - (0.666667)*R1
##                                              b
## [1,] 3.3330  15920.0000 -10.333000  15913.0000
## [2,] 0.0000 -10596.6233   6.888667 -10580.1227
## [3,] 1.5611      5.1791   1.685200      8.4254
## 
## R3 <- R3 - (0.468377)*R1
##                                          b
## [1,] 3.333  15920.00 -10.333000  15913.000
## [2,] 0.000 -10596.62   6.888667 -10580.123
## [3,] 0.000  -7451.38   6.524938  -7444.855
## 
## R3 <- R3 - (0.703184)*R2
##                                             b
## [1,] 3.333  15920.00 -10.333000  15913.000000
## [2,] 0.000 -10596.62   6.888667 -10580.122667
## [3,] 0.000      0.00   1.680935     -5.078073
## 
## Matriz triangular [U | c]:
##                                             b
## [1,] 3.333  15920.00 -10.333000  15913.000000
## [2,] 0.000 -10596.62   6.888667 -10580.122667
## [3,] 0.000      0.00   1.680935     -5.078073
## 
## x[3] = (-5.07807 - 0)/1.68093 = -3.02098
## x[2] = (-10580.1 - -20.8105)/-10596.6 = 0.996479
## x[1] = (15913 - 15895.2)/3.333 = 5.35231
## 
## Solución x:
## [1]  5.352312  0.996479 -3.020981
## 
## Residuo:
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Seccion 7.5 Gauss-Jordan con pivoteo parcial

## Función Gauss-Jordan con pivoteo parcial
gj <- function(A, b, tol = .Machine$double.eps){
  n <- nrow(A)
  M <- cbind(A,b)
  cat("matriz inicial:\n")
  print(round(M,8))
  
  for(i in 1:n){
    # Pivoteo parcial
    max_row <- which.max(abs(M[i:n, i])) + (i-1)
    if(max_row != i){
      tmp <- M[i,]
      M[i,] <- M[max_row,]
      M[max_row,] <- tmp
      cat(sprintf("\nIntercambiando fila %d con fila %d para pivoteo parcial\n", i, max_row))
      print(round(M,8))
    }
    
    pivot <- M[i,i]
    if(abs(pivot) < tol) stop("por si el pivote es pequeño.")
    
    # Normalizar fila
    M[i,] <- M[i,]/pivot
    cat(sprintf("\nNormalizando fila %d...\n",i))
    print(round(M,8))
    
    # Eliminar otras filas
    for(j in 1:n){
      if(j != i){
        factor <- M[j,i]
        M[j,] <- M[j,] - factor*M[i,]
        cat(sprintf("Actualizando fila %d usando fila %d...\n", j, i))
        print(round(M,8))
      }
    }
  }
  
  x <- M[,n+1]
  cat("\n¡Resultado final:\n")
  print(round(x,8))
  
  resid <- A %*% x - b
  cat("\nChequeando error (Ax-b):\n")
  print(round(resid,8))
  
  list(x=x, residual=resid, M_aug=M)
}

# Ejercicio 7.5.1
A <- matrix(c(1,2,3,
              -0.4,2,-1,
              0.5,-3,1),3,byrow=TRUE)
b <- c(1,10,15)
cat("=== Ejercicio 7.5.1 ===\n")
## === Ejercicio 7.5.1 ===
res <- gj(A,b)
## matriz inicial:
##                  b
## [1,]  1.0  2  3  1
## [2,] -0.4  2 -1 10
## [3,]  0.5 -3  1 15
## 
## Normalizando fila 1...
##                  b
## [1,]  1.0  2  3  1
## [2,] -0.4  2 -1 10
## [3,]  0.5 -3  1 15
## Actualizando fila 2 usando fila 1...
##                      b
## [1,] 1.0  2.0 3.0  1.0
## [2,] 0.0  2.8 0.2 10.4
## [3,] 0.5 -3.0 1.0 15.0
## Actualizando fila 3 usando fila 1...
##                     b
## [1,] 1  2.0  3.0  1.0
## [2,] 0  2.8  0.2 10.4
## [3,] 0 -4.0 -0.5 14.5
## 
## Intercambiando fila 2 con fila 3 para pivoteo parcial
##                     b
## [1,] 1  2.0  3.0  1.0
## [2,] 0 -4.0 -0.5 14.5
## [3,] 0  2.8  0.2 10.4
## 
## Normalizando fila 2...
##                       b
## [1,] 1 2.0 3.000  1.000
## [2,] 0 1.0 0.125 -3.625
## [3,] 0 2.8 0.200 10.400
## Actualizando fila 1 usando fila 2...
##                       b
## [1,] 1 0.0 2.750  8.250
## [2,] 0 1.0 0.125 -3.625
## [3,] 0 2.8 0.200 10.400
## Actualizando fila 3 usando fila 2...
##                      b
## [1,] 1 0  2.750  8.250
## [2,] 0 1  0.125 -3.625
## [3,] 0 0 -0.150 20.550
## 
## Normalizando fila 3...
##                       b
## [1,] 1 0 2.750    8.250
## [2,] 0 1 0.125   -3.625
## [3,] 0 0 1.000 -137.000
## Actualizando fila 1 usando fila 3...
##                       b
## [1,] 1 0 0.000  385.000
## [2,] 0 1 0.125   -3.625
## [3,] 0 0 1.000 -137.000
## Actualizando fila 2 usando fila 3...
##                 b
## [1,] 1 0 0  385.0
## [2,] 0 1 0   13.5
## [3,] 0 0 1 -137.0
## 
## ¡Resultado final:
## [1]  385.0   13.5 -137.0
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio 7.5.2

A <- matrix(c(2,-0.9,3,
              -0.5,0.1,-1,
              1,-6.35,-0.45),3,byrow=TRUE)
b <- c(-3.61,2.035,15.401)
cat("\n=== Ejercicio 7.5.2 ===\n")
## 
## === Ejercicio 7.5.2 ===
res <- gj(A,b)
## matriz inicial:
##                            b
## [1,]  2.0 -0.90  3.00 -3.610
## [2,] -0.5  0.10 -1.00  2.035
## [3,]  1.0 -6.35 -0.45 15.401
## 
## Normalizando fila 1...
##                            b
## [1,]  1.0 -0.45  1.50 -1.805
## [2,] -0.5  0.10 -1.00  2.035
## [3,]  1.0 -6.35 -0.45 15.401
## Actualizando fila 2 usando fila 1...
##                           b
## [1,] 1 -0.450  1.50 -1.8050
## [2,] 0 -0.125 -0.25  1.1325
## [3,] 1 -6.350 -0.45 15.4010
## Actualizando fila 3 usando fila 1...
##                           b
## [1,] 1 -0.450  1.50 -1.8050
## [2,] 0 -0.125 -0.25  1.1325
## [3,] 0 -5.900 -1.95 17.2060
## 
## Intercambiando fila 2 con fila 3 para pivoteo parcial
##                           b
## [1,] 1 -0.450  1.50 -1.8050
## [2,] 0 -5.900 -1.95 17.2060
## [3,] 0 -0.125 -0.25  1.1325
## 
## Normalizando fila 2...
##                                  b
## [1,] 1 -0.450  1.5000000 -1.805000
## [2,] 0  1.000  0.3305085 -2.916271
## [3,] 0 -0.125 -0.2500000  1.132500
## Actualizando fila 1 usando fila 2...
##                                  b
## [1,] 1  0.000  1.6487288 -3.117322
## [2,] 0  1.000  0.3305085 -2.916271
## [3,] 0 -0.125 -0.2500000  1.132500
## Actualizando fila 3 usando fila 2...
##                              b
## [1,] 1 0  1.6487288 -3.1173220
## [2,] 0 1  0.3305085 -2.9162712
## [3,] 0 0 -0.2086864  0.7679661
## 
## Normalizando fila 3...
##                            b
## [1,] 1 0 1.6487288 -3.117322
## [2,] 0 1 0.3305085 -2.916271
## [3,] 0 0 1.0000000 -3.680000
## Actualizando fila 1 usando fila 3...
##                            b
## [1,] 1 0 0.0000000  2.950000
## [2,] 0 1 0.3305085 -2.916271
## [3,] 0 0 1.0000000 -3.680000
## Actualizando fila 2 usando fila 3...
##                b
## [1,] 1 0 0  2.95
## [2,] 0 1 0 -1.70
## [3,] 0 0 1 -3.68
## 
## ¡Resultado final:
## [1]  2.95 -1.70 -3.68
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio 7.5.3

A <- matrix(c(0.7,2.7,-6,0.7,
              2,-0.8,3,-1,
              -1,-1.5,1.4,3,
              0,7,-1.56,1),4,byrow=TRUE)
b <- c(1.6487,-2.342,-4.189,15.792)
cat("\n=== Ejercicio 7.5.3 ===\n")
## 
## === Ejercicio 7.5.3 ===
res <- gj(A,b)
## matriz inicial:
##                                 b
## [1,]  0.7  2.7 -6.00  0.7  1.6487
## [2,]  2.0 -0.8  3.00 -1.0 -2.3420
## [3,] -1.0 -1.5  1.40  3.0 -4.1890
## [4,]  0.0  7.0 -1.56  1.0 15.7920
## 
## Intercambiando fila 1 con fila 2 para pivoteo parcial
##                                 b
## [1,]  2.0 -0.8  3.00 -1.0 -2.3420
## [2,]  0.7  2.7 -6.00  0.7  1.6487
## [3,] -1.0 -1.5  1.40  3.0 -4.1890
## [4,]  0.0  7.0 -1.56  1.0 15.7920
## 
## Normalizando fila 1...
##                                 b
## [1,]  1.0 -0.4  1.50 -0.5 -1.1710
## [2,]  0.7  2.7 -6.00  0.7  1.6487
## [3,] -1.0 -1.5  1.40  3.0 -4.1890
## [4,]  0.0  7.0 -1.56  1.0 15.7920
## Actualizando fila 2 usando fila 1...
##                                 b
## [1,]  1 -0.40  1.50 -0.50 -1.1710
## [2,]  0  2.98 -7.05  1.05  2.4684
## [3,] -1 -1.50  1.40  3.00 -4.1890
## [4,]  0  7.00 -1.56  1.00 15.7920
## Actualizando fila 3 usando fila 1...
##                                b
## [1,] 1 -0.40  1.50 -0.50 -1.1710
## [2,] 0  2.98 -7.05  1.05  2.4684
## [3,] 0 -1.90  2.90  2.50 -5.3600
## [4,] 0  7.00 -1.56  1.00 15.7920
## Actualizando fila 4 usando fila 1...
##                                b
## [1,] 1 -0.40  1.50 -0.50 -1.1710
## [2,] 0  2.98 -7.05  1.05  2.4684
## [3,] 0 -1.90  2.90  2.50 -5.3600
## [4,] 0  7.00 -1.56  1.00 15.7920
## 
## Intercambiando fila 2 con fila 4 para pivoteo parcial
##                                b
## [1,] 1 -0.40  1.50 -0.50 -1.1710
## [2,] 0  7.00 -1.56  1.00 15.7920
## [3,] 0 -1.90  2.90  2.50 -5.3600
## [4,] 0  2.98 -7.05  1.05  2.4684
## 
## Normalizando fila 2...
##                                          b
## [1,] 1 -0.40  1.5000000 -0.5000000 -1.1710
## [2,] 0  1.00 -0.2228571  0.1428571  2.2560
## [3,] 0 -1.90  2.9000000  2.5000000 -5.3600
## [4,] 0  2.98 -7.0500000  1.0500000  2.4684
## Actualizando fila 1 usando fila 2...
##                                          b
## [1,] 1  0.00  1.4108571 -0.4428571 -0.2686
## [2,] 0  1.00 -0.2228571  0.1428571  2.2560
## [3,] 0 -1.90  2.9000000  2.5000000 -5.3600
## [4,] 0  2.98 -7.0500000  1.0500000  2.4684
## Actualizando fila 3 usando fila 2...
##                                         b
## [1,] 1 0.00  1.4108571 -0.4428571 -0.2686
## [2,] 0 1.00 -0.2228571  0.1428571  2.2560
## [3,] 0 0.00  2.4765714  2.7714286 -1.0736
## [4,] 0 2.98 -7.0500000  1.0500000  2.4684
## Actualizando fila 4 usando fila 2...
##                                       b
## [1,] 1 0  1.4108571 -0.4428571 -0.26860
## [2,] 0 1 -0.2228571  0.1428571  2.25600
## [3,] 0 0  2.4765714  2.7714286 -1.07360
## [4,] 0 0 -6.3858857  0.6242857 -4.25448
## 
## Intercambiando fila 3 con fila 4 para pivoteo parcial
##                                       b
## [1,] 1 0  1.4108571 -0.4428571 -0.26860
## [2,] 0 1 -0.2228571  0.1428571  2.25600
## [3,] 0 0 -6.3858857  0.6242857 -4.25448
## [4,] 0 0  2.4765714  2.7714286 -1.07360
## 
## Normalizando fila 3...
##                                          b
## [1,] 1 0  1.4108571 -0.44285714 -0.2686000
## [2,] 0 1 -0.2228571  0.14285714  2.2560000
## [3,] 0 0  1.0000000 -0.09776024  0.6662318
## [4,] 0 0  2.4765714  2.77142857 -1.0736000
## Actualizando fila 1 usando fila 3...
##                                          b
## [1,] 1 0  0.0000000 -0.30493141 -1.2085579
## [2,] 0 1 -0.2228571  0.14285714  2.2560000
## [3,] 0 0  1.0000000 -0.09776024  0.6662318
## [4,] 0 0  2.4765714  2.77142857 -1.0736000
## Actualizando fila 2 usando fila 3...
##                                        b
## [1,] 1 0 0.000000 -0.30493141 -1.2085579
## [2,] 0 1 0.000000  0.12107058  2.4044745
## [3,] 0 0 1.000000 -0.09776024  0.6662318
## [4,] 0 0 2.476571  2.77142857 -1.0736000
## Actualizando fila 4 usando fila 3...
##                                 b
## [1,] 1 0 0 -0.30493141 -1.2085579
## [2,] 0 1 0  0.12107058  2.4044745
## [3,] 0 0 1 -0.09776024  0.6662318
## [4,] 0 0 0  3.01353879 -2.7235706
## 
## Normalizando fila 4...
##                                 b
## [1,] 1 0 0 -0.30493141 -1.2085579
## [2,] 0 1 0  0.12107058  2.4044745
## [3,] 0 0 1 -0.09776024  0.6662318
## [4,] 0 0 0  1.00000000 -0.9037782
## Actualizando fila 1 usando fila 4...
##                                 b
## [1,] 1 0 0  0.00000000 -1.4841482
## [2,] 0 1 0  0.12107058  2.4044745
## [3,] 0 0 1 -0.09776024  0.6662318
## [4,] 0 0 0  1.00000000 -0.9037782
## Actualizando fila 2 usando fila 4...
##                                 b
## [1,] 1 0 0  0.00000000 -1.4841482
## [2,] 0 1 0  0.00000000  2.5138955
## [3,] 0 0 1 -0.09776024  0.6662318
## [4,] 0 0 0  1.00000000 -0.9037782
## Actualizando fila 3 usando fila 4...
##                       b
## [1,] 1 0 0 0 -1.4841482
## [2,] 0 1 0 0  2.5138955
## [3,] 0 0 1 0  0.5778782
## [4,] 0 0 0 1 -0.9037782
## 
## ¡Resultado final:
## [1] -1.4841482  2.5138955  0.5778782 -0.9037782
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.5.4

A <- matrix(c(3,-0.1,-0.2,
              0.1,7,-0.3,
              0.3,-0.2,10),3,byrow=TRUE)
b <- c(7.85,-19.3,71.4)
cat("\n=== Ejercicio 7.5.4 ===\n")
## 
## === Ejercicio 7.5.4 ===
res <- gj(A,b)
## matriz inicial:
##                         b
## [1,] 3.0 -0.1 -0.2   7.85
## [2,] 0.1  7.0 -0.3 -19.30
## [3,] 0.3 -0.2 10.0  71.40
## 
## Normalizando fila 1...
##                                           b
## [1,] 1.0 -0.03333333 -0.06666667   2.616667
## [2,] 0.1  7.00000000 -0.30000000 -19.300000
## [3,] 0.3 -0.20000000 10.00000000  71.400000
## Actualizando fila 2 usando fila 1...
##                                           b
## [1,] 1.0 -0.03333333 -0.06666667   2.616667
## [2,] 0.0  7.00333333 -0.29333333 -19.561667
## [3,] 0.3 -0.20000000 10.00000000  71.400000
## Actualizando fila 3 usando fila 1...
##                                         b
## [1,] 1 -0.03333333 -0.06666667   2.616667
## [2,] 0  7.00333333 -0.29333333 -19.561667
## [3,] 0 -0.19000000 10.02000000  70.615000
## 
## Normalizando fila 2...
##                                        b
## [1,] 1 -0.03333333 -0.06666667  2.616667
## [2,] 0  1.00000000 -0.04188482 -2.793194
## [3,] 0 -0.19000000 10.02000000 70.615000
## Actualizando fila 1 usando fila 2...
##                                  b
## [1,] 1  0.00 -0.06806283  2.523560
## [2,] 0  1.00 -0.04188482 -2.793194
## [3,] 0 -0.19 10.02000000 70.615000
## Actualizando fila 3 usando fila 2...
##                              b
## [1,] 1 0 -0.06806283  2.523560
## [2,] 0 1 -0.04188482 -2.793194
## [3,] 0 0 10.01204188 70.084293
## 
## Normalizando fila 3...
##                              b
## [1,] 1 0 -0.06806283  2.523560
## [2,] 0 1 -0.04188482 -2.793194
## [3,] 0 0  1.00000000  7.000000
## Actualizando fila 1 usando fila 3...
##                              b
## [1,] 1 0  0.00000000  3.000000
## [2,] 0 1 -0.04188482 -2.793194
## [3,] 0 0  1.00000000  7.000000
## Actualizando fila 2 usando fila 3...
##               b
## [1,] 1 0 0  3.0
## [2,] 0 1 0 -2.5
## [3,] 0 0 1  7.0
## 
## ¡Resultado final:
## [1]  3.0 -2.5  7.0
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio 7.5.5

A <- matrix(c(10,2,-1,
              -3,-6,2,
              1,1,5),3,byrow=TRUE)
b <- c(27,-61.5,-21.5)
cat("\n=== Ejercicio 7.5.5 ===\n")
## 
## === Ejercicio 7.5.5 ===
res <- gj(A,b)
## matriz inicial:
##                   b
## [1,] 10  2 -1  27.0
## [2,] -3 -6  2 -61.5
## [3,]  1  1  5 -21.5
## 
## Normalizando fila 1...
##                       b
## [1,]  1  0.2 -0.1   2.7
## [2,] -3 -6.0  2.0 -61.5
## [3,]  1  1.0  5.0 -21.5
## Actualizando fila 2 usando fila 1...
##                      b
## [1,] 1  0.2 -0.1   2.7
## [2,] 0 -5.4  1.7 -53.4
## [3,] 1  1.0  5.0 -21.5
## Actualizando fila 3 usando fila 1...
##                      b
## [1,] 1  0.2 -0.1   2.7
## [2,] 0 -5.4  1.7 -53.4
## [3,] 0  0.8  5.1 -24.2
## 
## Normalizando fila 2...
##                                b
## [1,] 1 0.2 -0.1000000   2.700000
## [2,] 0 1.0 -0.3148148   9.888889
## [3,] 0 0.8  5.1000000 -24.200000
## Actualizando fila 1 usando fila 2...
##                                  b
## [1,] 1 0.0 -0.03703704   0.7222222
## [2,] 0 1.0 -0.31481481   9.8888889
## [3,] 0 0.8  5.10000000 -24.2000000
## Actualizando fila 3 usando fila 2...
##                                b
## [1,] 1 0 -0.03703704   0.7222222
## [2,] 0 1 -0.31481481   9.8888889
## [3,] 0 0  5.35185185 -32.1111111
## 
## Normalizando fila 3...
##                               b
## [1,] 1 0 -0.03703704  0.7222222
## [2,] 0 1 -0.31481481  9.8888889
## [3,] 0 0  1.00000000 -6.0000000
## Actualizando fila 1 usando fila 3...
##                             b
## [1,] 1 0  0.0000000  0.500000
## [2,] 0 1 -0.3148148  9.888889
## [3,] 0 0  1.0000000 -6.000000
## Actualizando fila 2 usando fila 3...
##               b
## [1,] 1 0 0  0.5
## [2,] 0 1 0  8.0
## [3,] 0 0 1 -6.0
## 
## ¡Resultado final:
## [1]  0.5  8.0 -6.0
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

##Ejercicio 7.5.6

A <- matrix(c(1,3,-2,1,
              1,3,-1,2,
              0,1,-1,4,
              2,6,1,2),4,byrow=TRUE)
b <- c(4,1,5,2)
cat("\n=== Ejercicio 7.5.6 ===\n")
## 
## === Ejercicio 7.5.6 ===
res <- gj(A,b)
## matriz inicial:
##               b
## [1,] 1 3 -2 1 4
## [2,] 1 3 -1 2 1
## [3,] 0 1 -1 4 5
## [4,] 2 6  1 2 2
## 
## Intercambiando fila 1 con fila 4 para pivoteo parcial
##               b
## [1,] 2 6  1 2 2
## [2,] 1 3 -1 2 1
## [3,] 0 1 -1 4 5
## [4,] 1 3 -2 1 4
## 
## Normalizando fila 1...
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 1 3 -1.0 2 1
## [3,] 0 1 -1.0 4 5
## [4,] 1 3 -2.0 1 4
## Actualizando fila 2 usando fila 1...
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 0 0 -1.5 1 0
## [3,] 0 1 -1.0 4 5
## [4,] 1 3 -2.0 1 4
## Actualizando fila 3 usando fila 1...
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 0 0 -1.5 1 0
## [3,] 0 1 -1.0 4 5
## [4,] 1 3 -2.0 1 4
## Actualizando fila 4 usando fila 1...
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 0 0 -1.5 1 0
## [3,] 0 1 -1.0 4 5
## [4,] 0 0 -2.5 0 3
## 
## Intercambiando fila 2 con fila 3 para pivoteo parcial
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 0 1 -1.0 4 5
## [3,] 0 0 -1.5 1 0
## [4,] 0 0 -2.5 0 3
## 
## Normalizando fila 2...
##                 b
## [1,] 1 3  0.5 1 1
## [2,] 0 1 -1.0 4 5
## [3,] 0 0 -1.5 1 0
## [4,] 0 0 -2.5 0 3
## Actualizando fila 1 usando fila 2...
##                     b
## [1,] 1 0  3.5 -11 -14
## [2,] 0 1 -1.0   4   5
## [3,] 0 0 -1.5   1   0
## [4,] 0 0 -2.5   0   3
## Actualizando fila 3 usando fila 2...
##                     b
## [1,] 1 0  3.5 -11 -14
## [2,] 0 1 -1.0   4   5
## [3,] 0 0 -1.5   1   0
## [4,] 0 0 -2.5   0   3
## Actualizando fila 4 usando fila 2...
##                     b
## [1,] 1 0  3.5 -11 -14
## [2,] 0 1 -1.0   4   5
## [3,] 0 0 -1.5   1   0
## [4,] 0 0 -2.5   0   3
## 
## Intercambiando fila 3 con fila 4 para pivoteo parcial
##                     b
## [1,] 1 0  3.5 -11 -14
## [2,] 0 1 -1.0   4   5
## [3,] 0 0 -2.5   0   3
## [4,] 0 0 -1.5   1   0
## 
## Normalizando fila 3...
##                       b
## [1,] 1 0  3.5 -11 -14.0
## [2,] 0 1 -1.0   4   5.0
## [3,] 0 0  1.0   0  -1.2
## [4,] 0 0 -1.5   1   0.0
## Actualizando fila 1 usando fila 3...
##                      b
## [1,] 1 0  0.0 -11 -9.8
## [2,] 0 1 -1.0   4  5.0
## [3,] 0 0  1.0   0 -1.2
## [4,] 0 0 -1.5   1  0.0
## Actualizando fila 2 usando fila 3...
##                      b
## [1,] 1 0  0.0 -11 -9.8
## [2,] 0 1  0.0   4  3.8
## [3,] 0 0  1.0   0 -1.2
## [4,] 0 0 -1.5   1  0.0
## Actualizando fila 4 usando fila 3...
##                   b
## [1,] 1 0 0 -11 -9.8
## [2,] 0 1 0   4  3.8
## [3,] 0 0 1   0 -1.2
## [4,] 0 0 0   1 -1.8
## 
## Normalizando fila 4...
##                   b
## [1,] 1 0 0 -11 -9.8
## [2,] 0 1 0   4  3.8
## [3,] 0 0 1   0 -1.2
## [4,] 0 0 0   1 -1.8
## Actualizando fila 1 usando fila 4...
##                  b
## [1,] 1 0 0 0 -29.6
## [2,] 0 1 0 4   3.8
## [3,] 0 0 1 0  -1.2
## [4,] 0 0 0 1  -1.8
## Actualizando fila 2 usando fila 4...
##                  b
## [1,] 1 0 0 0 -29.6
## [2,] 0 1 0 0  11.0
## [3,] 0 0 1 0  -1.2
## [4,] 0 0 0 1  -1.8
## Actualizando fila 3 usando fila 4...
##                  b
## [1,] 1 0 0 0 -29.6
## [2,] 0 1 0 0  11.0
## [3,] 0 0 1 0  -1.2
## [4,] 0 0 0 1  -1.8
## 
## ¡Resultado final:
## [1] -29.6  11.0  -1.2  -1.8
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.5.7

A <- matrix(c(6,-1,-1,4,
              1,-10,2,-1,
              3,-2,8,-1,
              1,1,1,-5),4,byrow=TRUE)
b <- c(17,-17,19,-14)
cat("\n=== Ejercicio 7.5.7 ===\n")
## 
## === Ejercicio 7.5.7 ===
res <- gj(A,b)
## matriz inicial:
##                    b
## [1,] 6  -1 -1  4  17
## [2,] 1 -10  2 -1 -17
## [3,] 3  -2  8 -1  19
## [4,] 1   1  1 -5 -14
## 
## Normalizando fila 1...
##                                                   b
## [1,] 1  -0.1666667 -0.1666667  0.6666667   2.833333
## [2,] 1 -10.0000000  2.0000000 -1.0000000 -17.000000
## [3,] 3  -2.0000000  8.0000000 -1.0000000  19.000000
## [4,] 1   1.0000000  1.0000000 -5.0000000 -14.000000
## Actualizando fila 2 usando fila 1...
##                                                  b
## [1,] 1 -0.1666667 -0.1666667  0.6666667   2.833333
## [2,] 0 -9.8333333  2.1666667 -1.6666667 -19.833333
## [3,] 3 -2.0000000  8.0000000 -1.0000000  19.000000
## [4,] 1  1.0000000  1.0000000 -5.0000000 -14.000000
## Actualizando fila 3 usando fila 1...
##                                                  b
## [1,] 1 -0.1666667 -0.1666667  0.6666667   2.833333
## [2,] 0 -9.8333333  2.1666667 -1.6666667 -19.833333
## [3,] 0 -1.5000000  8.5000000 -3.0000000  10.500000
## [4,] 1  1.0000000  1.0000000 -5.0000000 -14.000000
## Actualizando fila 4 usando fila 1...
##                                                  b
## [1,] 1 -0.1666667 -0.1666667  0.6666667   2.833333
## [2,] 0 -9.8333333  2.1666667 -1.6666667 -19.833333
## [3,] 0 -1.5000000  8.5000000 -3.0000000  10.500000
## [4,] 0  1.1666667  1.1666667 -5.6666667 -16.833333
## 
## Normalizando fila 2...
##                                                  b
## [1,] 1 -0.1666667 -0.1666667  0.6666667   2.833333
## [2,] 0  1.0000000 -0.2203390  0.1694915   2.016949
## [3,] 0 -1.5000000  8.5000000 -3.0000000  10.500000
## [4,] 0  1.1666667  1.1666667 -5.6666667 -16.833333
## Actualizando fila 1 usando fila 2...
##                                                 b
## [1,] 1  0.000000 -0.2033898  0.6949152   3.169492
## [2,] 0  1.000000 -0.2203390  0.1694915   2.016949
## [3,] 0 -1.500000  8.5000000 -3.0000000  10.500000
## [4,] 0  1.166667  1.1666667 -5.6666667 -16.833333
## Actualizando fila 3 usando fila 2...
##                                                b
## [1,] 1 0.000000 -0.2033898  0.6949152   3.169492
## [2,] 0 1.000000 -0.2203390  0.1694915   2.016949
## [3,] 0 0.000000  8.1694915 -2.7457627  13.525424
## [4,] 0 1.166667  1.1666667 -5.6666667 -16.833333
## Actualizando fila 4 usando fila 2...
##                                         b
## [1,] 1 0 -0.2033898  0.6949152   3.169492
## [2,] 0 1 -0.2203390  0.1694915   2.016949
## [3,] 0 0  8.1694915 -2.7457627  13.525424
## [4,] 0 0  1.4237288 -5.8644068 -19.186441
## 
## Normalizando fila 3...
##                                         b
## [1,] 1 0 -0.2033898  0.6949152   3.169492
## [2,] 0 1 -0.2203390  0.1694915   2.016949
## [3,] 0 0  1.0000000 -0.3360996   1.655602
## [4,] 0 0  1.4237288 -5.8644068 -19.186441
## Actualizando fila 1 usando fila 3...
##                                        b
## [1,] 1 0  0.000000  0.6265560   3.506224
## [2,] 0 1 -0.220339  0.1694915   2.016949
## [3,] 0 0  1.000000 -0.3360996   1.655602
## [4,] 0 0  1.423729 -5.8644068 -19.186441
## Actualizando fila 2 usando fila 3...
##                                        b
## [1,] 1 0 0.000000  0.62655602   3.506224
## [2,] 0 1 0.000000  0.09543568   2.381743
## [3,] 0 0 1.000000 -0.33609959   1.655602
## [4,] 0 0 1.423729 -5.86440678 -19.186441
## Actualizando fila 4 usando fila 3...
##                                 b
## [1,] 1 0 0  0.62655602   3.506224
## [2,] 0 1 0  0.09543568   2.381743
## [3,] 0 0 1 -0.33609959   1.655602
## [4,] 0 0 0 -5.38589212 -21.543568
## 
## Normalizando fila 4...
##                               b
## [1,] 1 0 0  0.62655602 3.506224
## [2,] 0 1 0  0.09543568 2.381743
## [3,] 0 0 1 -0.33609959 1.655602
## [4,] 0 0 0  1.00000000 4.000000
## Actualizando fila 1 usando fila 4...
##                               b
## [1,] 1 0 0  0.00000000 1.000000
## [2,] 0 1 0  0.09543568 2.381743
## [3,] 0 0 1 -0.33609959 1.655602
## [4,] 0 0 0  1.00000000 4.000000
## Actualizando fila 2 usando fila 4...
##                              b
## [1,] 1 0 0  0.0000000 1.000000
## [2,] 0 1 0  0.0000000 2.000000
## [3,] 0 0 1 -0.3360996 1.655602
## [4,] 0 0 0  1.0000000 4.000000
## Actualizando fila 3 usando fila 4...
##              b
## [1,] 1 0 0 0 1
## [2,] 0 1 0 0 2
## [3,] 0 0 1 0 3
## [4,] 0 0 0 1 4
## 
## ¡Resultado final:
## [1] 1 2 3 4
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.5.8

A <- matrix(c(1,2,3,4,
              1,-4,1,11,
              -1,8,7,6,
              16,8,-5,6),4,byrow=TRUE)
b <- c(1,2,-2,11)
cat("\n=== Ejercicio 7.5.8 ===\n")
## 
## === Ejercicio 7.5.8 ===
res <- gj(A,b)
## matriz inicial:
##                   b
## [1,]  1  2  3  4  1
## [2,]  1 -4  1 11  2
## [3,] -1  8  7  6 -2
## [4,] 16  8 -5  6 11
## 
## Intercambiando fila 1 con fila 4 para pivoteo parcial
##                   b
## [1,] 16  8 -5  6 11
## [2,]  1 -4  1 11  2
## [3,] -1  8  7  6 -2
## [4,]  1  2  3  4  1
## 
## Normalizando fila 1...
##                                   b
## [1,]  1  0.5 -0.3125  0.375  0.6875
## [2,]  1 -4.0  1.0000 11.000  2.0000
## [3,] -1  8.0  7.0000  6.000 -2.0000
## [4,]  1  2.0  3.0000  4.000  1.0000
## Actualizando fila 2 usando fila 1...
##                                   b
## [1,]  1  0.5 -0.3125  0.375  0.6875
## [2,]  0 -4.5  1.3125 10.625  1.3125
## [3,] -1  8.0  7.0000  6.000 -2.0000
## [4,]  1  2.0  3.0000  4.000  1.0000
## Actualizando fila 3 usando fila 1...
##                                  b
## [1,] 1  0.5 -0.3125  0.375  0.6875
## [2,] 0 -4.5  1.3125 10.625  1.3125
## [3,] 0  8.5  6.6875  6.375 -1.3125
## [4,] 1  2.0  3.0000  4.000  1.0000
## Actualizando fila 4 usando fila 1...
##                                  b
## [1,] 1  0.5 -0.3125  0.375  0.6875
## [2,] 0 -4.5  1.3125 10.625  1.3125
## [3,] 0  8.5  6.6875  6.375 -1.3125
## [4,] 0  1.5  3.3125  3.625  0.3125
## 
## Intercambiando fila 2 con fila 3 para pivoteo parcial
##                                  b
## [1,] 1  0.5 -0.3125  0.375  0.6875
## [2,] 0  8.5  6.6875  6.375 -1.3125
## [3,] 0 -4.5  1.3125 10.625  1.3125
## [4,] 0  1.5  3.3125  3.625  0.3125
## 
## Normalizando fila 2...
##                                        b
## [1,] 1  0.5 -0.3125000  0.375  0.6875000
## [2,] 0  1.0  0.7867647  0.750 -0.1544118
## [3,] 0 -4.5  1.3125000 10.625  1.3125000
## [4,] 0  1.5  3.3125000  3.625  0.3125000
## Actualizando fila 1 usando fila 2...
##                                        b
## [1,] 1  0.0 -0.7058823  0.000  0.7647059
## [2,] 0  1.0  0.7867647  0.750 -0.1544118
## [3,] 0 -4.5  1.3125000 10.625  1.3125000
## [4,] 0  1.5  3.3125000  3.625  0.3125000
## Actualizando fila 3 usando fila 2...
##                                       b
## [1,] 1 0.0 -0.7058823  0.000  0.7647059
## [2,] 0 1.0  0.7867647  0.750 -0.1544118
## [3,] 0 0.0  4.8529412 14.000  0.6176471
## [4,] 0 1.5  3.3125000  3.625  0.3125000
## Actualizando fila 4 usando fila 2...
##                                    b
## [1,] 1 0 -0.7058823  0.00  0.7647059
## [2,] 0 1  0.7867647  0.75 -0.1544118
## [3,] 0 0  4.8529412 14.00  0.6176471
## [4,] 0 0  2.1323529  2.50  0.5441177
## 
## Normalizando fila 3...
##                                       b
## [1,] 1 0 -0.7058823 0.000000  0.7647059
## [2,] 0 1  0.7867647 0.750000 -0.1544118
## [3,] 0 0  1.0000000 2.884848  0.1272727
## [4,] 0 0  2.1323529 2.500000  0.5441177
## Actualizando fila 1 usando fila 3...
##                                      b
## [1,] 1 0 0.0000000 2.036364  0.8545455
## [2,] 0 1 0.7867647 0.750000 -0.1544118
## [3,] 0 0 1.0000000 2.884848  0.1272727
## [4,] 0 0 2.1323529 2.500000  0.5441177
## Actualizando fila 2 usando fila 3...
##                                      b
## [1,] 1 0 0.000000  2.036364  0.8545455
## [2,] 0 1 0.000000 -1.519697 -0.2545455
## [3,] 0 0 1.000000  2.884848  0.1272727
## [4,] 0 0 2.132353  2.500000  0.5441177
## Actualizando fila 4 usando fila 3...
##                               b
## [1,] 1 0 0  2.036364  0.8545455
## [2,] 0 1 0 -1.519697 -0.2545455
## [3,] 0 0 1  2.884848  0.1272727
## [4,] 0 0 0 -3.651515  0.2727273
## 
## Normalizando fila 4...
##                               b
## [1,] 1 0 0  2.036364  0.8545455
## [2,] 0 1 0 -1.519697 -0.2545455
## [3,] 0 0 1  2.884848  0.1272727
## [4,] 0 0 0  1.000000 -0.0746888
## Actualizando fila 1 usando fila 4...
##                               b
## [1,] 1 0 0  0.000000  1.0066390
## [2,] 0 1 0 -1.519697 -0.2545455
## [3,] 0 0 1  2.884848  0.1272727
## [4,] 0 0 0  1.000000 -0.0746888
## Actualizando fila 2 usando fila 4...
##                              b
## [1,] 1 0 0 0.000000  1.0066390
## [2,] 0 1 0 0.000000 -0.3680498
## [3,] 0 0 1 2.884848  0.1272727
## [4,] 0 0 0 1.000000 -0.0746888
## Actualizando fila 3 usando fila 4...
##                       b
## [1,] 1 0 0 0  1.0066390
## [2,] 0 1 0 0 -0.3680498
## [3,] 0 0 1 0  0.3427386
## [4,] 0 0 0 1 -0.0746888
## 
## ¡Resultado final:
## [1]  1.0066390 -0.3680498  0.3427386 -0.0746888
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Ejercicio 7.5.9

A <- matrix(c(1,1,0,0,0,
              1,2,1,0,0,
              0,1,3,1,0,
              0,0,1,4,1,
              0,0,0,1,5),5,byrow=TRUE)
b <- c(3,-1,2,1,3)
cat("\n=== Ejercicio 7.5.9 ===\n")
## 
## === Ejercicio 7.5.9 ===
res <- gj(A,b)
## matriz inicial:
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 1 2 1 0 0 -1
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## 
## Normalizando fila 1...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 1 2 1 0 0 -1
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## Actualizando fila 2 usando fila 1...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 0 1 1 0 0 -4
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## Actualizando fila 3 usando fila 1...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 0 1 1 0 0 -4
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## Actualizando fila 4 usando fila 1...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 0 1 1 0 0 -4
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## Actualizando fila 5 usando fila 1...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 0 1 1 0 0 -4
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## 
## Normalizando fila 2...
##                 b
## [1,] 1 1 0 0 0  3
## [2,] 0 1 1 0 0 -4
## [3,] 0 1 3 1 0  2
## [4,] 0 0 1 4 1  1
## [5,] 0 0 0 1 5  3
## Actualizando fila 1 usando fila 2...
##                  b
## [1,] 1 0 -1 0 0  7
## [2,] 0 1  1 0 0 -4
## [3,] 0 1  3 1 0  2
## [4,] 0 0  1 4 1  1
## [5,] 0 0  0 1 5  3
## Actualizando fila 3 usando fila 2...
##                  b
## [1,] 1 0 -1 0 0  7
## [2,] 0 1  1 0 0 -4
## [3,] 0 0  2 1 0  6
## [4,] 0 0  1 4 1  1
## [5,] 0 0  0 1 5  3
## Actualizando fila 4 usando fila 2...
##                  b
## [1,] 1 0 -1 0 0  7
## [2,] 0 1  1 0 0 -4
## [3,] 0 0  2 1 0  6
## [4,] 0 0  1 4 1  1
## [5,] 0 0  0 1 5  3
## Actualizando fila 5 usando fila 2...
##                  b
## [1,] 1 0 -1 0 0  7
## [2,] 0 1  1 0 0 -4
## [3,] 0 0  2 1 0  6
## [4,] 0 0  1 4 1  1
## [5,] 0 0  0 1 5  3
## 
## Normalizando fila 3...
##                    b
## [1,] 1 0 -1 0.0 0  7
## [2,] 0 1  1 0.0 0 -4
## [3,] 0 0  1 0.5 0  3
## [4,] 0 0  1 4.0 1  1
## [5,] 0 0  0 1.0 5  3
## Actualizando fila 1 usando fila 3...
##                   b
## [1,] 1 0 0 0.5 0 10
## [2,] 0 1 1 0.0 0 -4
## [3,] 0 0 1 0.5 0  3
## [4,] 0 0 1 4.0 1  1
## [5,] 0 0 0 1.0 5  3
## Actualizando fila 2 usando fila 3...
##                    b
## [1,] 1 0 0  0.5 0 10
## [2,] 0 1 0 -0.5 0 -7
## [3,] 0 0 1  0.5 0  3
## [4,] 0 0 1  4.0 1  1
## [5,] 0 0 0  1.0 5  3
## Actualizando fila 4 usando fila 3...
##                    b
## [1,] 1 0 0  0.5 0 10
## [2,] 0 1 0 -0.5 0 -7
## [3,] 0 0 1  0.5 0  3
## [4,] 0 0 0  3.5 1 -2
## [5,] 0 0 0  1.0 5  3
## Actualizando fila 5 usando fila 3...
##                    b
## [1,] 1 0 0  0.5 0 10
## [2,] 0 1 0 -0.5 0 -7
## [3,] 0 0 1  0.5 0  3
## [4,] 0 0 0  3.5 1 -2
## [5,] 0 0 0  1.0 5  3
## 
## Normalizando fila 4...
##                                    b
## [1,] 1 0 0  0.5 0.0000000 10.0000000
## [2,] 0 1 0 -0.5 0.0000000 -7.0000000
## [3,] 0 0 1  0.5 0.0000000  3.0000000
## [4,] 0 0 0  1.0 0.2857143 -0.5714286
## [5,] 0 0 0  1.0 5.0000000  3.0000000
## Actualizando fila 1 usando fila 4...
##                                     b
## [1,] 1 0 0  0.0 -0.1428571 10.2857143
## [2,] 0 1 0 -0.5  0.0000000 -7.0000000
## [3,] 0 0 1  0.5  0.0000000  3.0000000
## [4,] 0 0 0  1.0  0.2857143 -0.5714286
## [5,] 0 0 0  1.0  5.0000000  3.0000000
## Actualizando fila 2 usando fila 4...
##                                    b
## [1,] 1 0 0 0.0 -0.1428571 10.2857143
## [2,] 0 1 0 0.0  0.1428571 -7.2857143
## [3,] 0 0 1 0.5  0.0000000  3.0000000
## [4,] 0 0 0 1.0  0.2857143 -0.5714286
## [5,] 0 0 0 1.0  5.0000000  3.0000000
## Actualizando fila 3 usando fila 4...
##                                  b
## [1,] 1 0 0 0 -0.1428571 10.2857143
## [2,] 0 1 0 0  0.1428571 -7.2857143
## [3,] 0 0 1 0 -0.1428571  3.2857143
## [4,] 0 0 0 1  0.2857143 -0.5714286
## [5,] 0 0 0 1  5.0000000  3.0000000
## Actualizando fila 5 usando fila 4...
##                                  b
## [1,] 1 0 0 0 -0.1428571 10.2857143
## [2,] 0 1 0 0  0.1428571 -7.2857143
## [3,] 0 0 1 0 -0.1428571  3.2857143
## [4,] 0 0 0 1  0.2857143 -0.5714286
## [5,] 0 0 0 0  4.7142857  3.5714286
## 
## Normalizando fila 5...
##                                  b
## [1,] 1 0 0 0 -0.1428571 10.2857143
## [2,] 0 1 0 0  0.1428571 -7.2857143
## [3,] 0 0 1 0 -0.1428571  3.2857143
## [4,] 0 0 0 1  0.2857143 -0.5714286
## [5,] 0 0 0 0  1.0000000  0.7575758
## Actualizando fila 1 usando fila 5...
##                                  b
## [1,] 1 0 0 0  0.0000000 10.3939394
## [2,] 0 1 0 0  0.1428571 -7.2857143
## [3,] 0 0 1 0 -0.1428571  3.2857143
## [4,] 0 0 0 1  0.2857143 -0.5714286
## [5,] 0 0 0 0  1.0000000  0.7575758
## Actualizando fila 2 usando fila 5...
##                                  b
## [1,] 1 0 0 0  0.0000000 10.3939394
## [2,] 0 1 0 0  0.0000000 -7.3939394
## [3,] 0 0 1 0 -0.1428571  3.2857143
## [4,] 0 0 0 1  0.2857143 -0.5714286
## [5,] 0 0 0 0  1.0000000  0.7575758
## Actualizando fila 3 usando fila 5...
##                                 b
## [1,] 1 0 0 0 0.0000000 10.3939394
## [2,] 0 1 0 0 0.0000000 -7.3939394
## [3,] 0 0 1 0 0.0000000  3.3939394
## [4,] 0 0 0 1 0.2857143 -0.5714286
## [5,] 0 0 0 0 1.0000000  0.7575758
## Actualizando fila 4 usando fila 5...
##                         b
## [1,] 1 0 0 0 0 10.3939394
## [2,] 0 1 0 0 0 -7.3939394
## [3,] 0 0 1 0 0  3.3939394
## [4,] 0 0 0 1 0 -0.7878788
## [5,] 0 0 0 0 1  0.7575758
## 
## ¡Resultado final:
## [1] 10.3939394 -7.3939394  3.3939394 -0.7878788  0.7575758
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0
## [5,]    0

Ejercicio 7.5.10

A <- matrix(c(15,-18,15,-3,
              -18,2,-18,4,
              15,-18,18,-3,
              -3,4,-3,1),4,byrow=TRUE)
b <- c(11,10,11,13)
cat("\n=== Ejercicio 7.5.10 ===\n")
## 
## === Ejercicio 7.5.10 ===
res <- gj(A,b)
## matriz inicial:
##                      b
## [1,]  15 -18  15 -3 11
## [2,] -18   2 -18  4 10
## [3,]  15 -18  18 -3 11
## [4,]  -3   4  -3  1 13
## 
## Intercambiando fila 1 con fila 2 para pivoteo parcial
##                      b
## [1,] -18   2 -18  4 10
## [2,]  15 -18  15 -3 11
## [3,]  15 -18  18 -3 11
## [4,]  -3   4  -3  1 13
## 
## Normalizando fila 1...
##                                            b
## [1,]  1  -0.1111111  1 -0.2222222 -0.5555556
## [2,] 15 -18.0000000 15 -3.0000000 11.0000000
## [3,] 15 -18.0000000 18 -3.0000000 11.0000000
## [4,] -3   4.0000000 -3  1.0000000 13.0000000
## Actualizando fila 2 usando fila 1...
##                                            b
## [1,]  1  -0.1111111  1 -0.2222222 -0.5555556
## [2,]  0 -16.3333333  0  0.3333333 19.3333333
## [3,] 15 -18.0000000 18 -3.0000000 11.0000000
## [4,] -3   4.0000000 -3  1.0000000 13.0000000
## Actualizando fila 3 usando fila 1...
##                                            b
## [1,]  1  -0.1111111  1 -0.2222222 -0.5555556
## [2,]  0 -16.3333333  0  0.3333333 19.3333333
## [3,]  0 -16.3333333  3  0.3333333 19.3333333
## [4,] -3   4.0000000 -3  1.0000000 13.0000000
## Actualizando fila 4 usando fila 1...
##                                          b
## [1,] 1  -0.1111111 1 -0.2222222 -0.5555556
## [2,] 0 -16.3333333 0  0.3333333 19.3333333
## [3,] 0 -16.3333333 3  0.3333333 19.3333333
## [4,] 0   3.6666667 0  0.3333333 11.3333333
## 
## Normalizando fila 2...
##                                           b
## [1,] 1  -0.1111111 1 -0.22222222 -0.5555556
## [2,] 0   1.0000000 0 -0.02040816 -1.1836735
## [3,] 0 -16.3333333 3  0.33333333 19.3333333
## [4,] 0   3.6666667 0  0.33333333 11.3333333
## Actualizando fila 1 usando fila 2...
##                                          b
## [1,] 1   0.000000 1 -0.22448980 -0.6870748
## [2,] 0   1.000000 0 -0.02040816 -1.1836735
## [3,] 0 -16.333333 3  0.33333333 19.3333333
## [4,] 0   3.666667 0  0.33333333 11.3333333
## Actualizando fila 3 usando fila 2...
##                                        b
## [1,] 1 0.000000 1 -0.22448980 -0.6870748
## [2,] 0 1.000000 0 -0.02040816 -1.1836735
## [3,] 0 0.000000 3  0.00000000  0.0000000
## [4,] 0 3.666667 0  0.33333333 11.3333333
## Actualizando fila 4 usando fila 2...
##                                 b
## [1,] 1 0 1 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 3  0.00000000  0.0000000
## [4,] 0 0 0  0.40816327 15.6734694
## 
## Normalizando fila 3...
##                                 b
## [1,] 1 0 1 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 1  0.00000000  0.0000000
## [4,] 0 0 0  0.40816327 15.6734694
## Actualizando fila 1 usando fila 3...
##                                 b
## [1,] 1 0 0 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 1  0.00000000  0.0000000
## [4,] 0 0 0  0.40816327 15.6734694
## Actualizando fila 2 usando fila 3...
##                                 b
## [1,] 1 0 0 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 1  0.00000000  0.0000000
## [4,] 0 0 0  0.40816327 15.6734694
## Actualizando fila 4 usando fila 3...
##                                 b
## [1,] 1 0 0 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 1  0.00000000  0.0000000
## [4,] 0 0 0  0.40816327 15.6734694
## 
## Normalizando fila 4...
##                                 b
## [1,] 1 0 0 -0.22448980 -0.6870748
## [2,] 0 1 0 -0.02040816 -1.1836735
## [3,] 0 0 1  0.00000000  0.0000000
## [4,] 0 0 0  1.00000000 38.4000000
## Actualizando fila 1 usando fila 4...
##                                b
## [1,] 1 0 0  0.00000000  7.933333
## [2,] 0 1 0 -0.02040816 -1.183673
## [3,] 0 0 1  0.00000000  0.000000
## [4,] 0 0 0  1.00000000 38.400000
## Actualizando fila 2 usando fila 4...
##                      b
## [1,] 1 0 0 0  7.933333
## [2,] 0 1 0 0 -0.400000
## [3,] 0 0 1 0  0.000000
## [4,] 0 0 0 1 38.400000
## Actualizando fila 3 usando fila 4...
##                      b
## [1,] 1 0 0 0  7.933333
## [2,] 0 1 0 0 -0.400000
## [3,] 0 0 1 0  0.000000
## [4,] 0 0 0 1 38.400000
## 
## ¡Resultado final:
## [1]  7.933333 -0.400000  0.000000 38.400000
## 
## Chequeando error (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

Seccion 7.6 Gauss-Seidel

gauss_seidel <- function(A, b, x_init = NULL, tol = 1e-10, maxit = 200, verbose = TRUE, verbose_every = 1){
  n <- nrow(A)
  x <- if(is.null(x_init)) rep(0, n) else x_init
  
  if(verbose) cat("Vector inicial x:\n"); print(round(x,8))
  
  for(k in 1:maxit){
    x_old <- x
    for(i in 1:n){
      # Reordenar filas si pivote cero
      if(abs(A[i,i]) < 1e-15){
        swap_row <- which(abs(A[i:n,i]) > 1e-15)[1] + (i-1)
        if(is.na(swap_row)){
          stop(sprintf("No se puede resolver, pivote cero en columna %d.", i))
        }
        cat(sprintf("\nIntercambiando fila %d con fila %d para evitar pivote cero\n", i, swap_row))
        tmp <- A[i,]; A[i,] <- A[swap_row,]; A[swap_row,] <- tmp
        tmpb <- b[i]; b[i] <- b[swap_row]; b[swap_row] <- tmpb
        if(verbose) print(cbind(A,b))
      }
      
      s1 <- if(i>1) sum(A[i,1:(i-1)]*x[1:(i-1)]) else 0
      s2 <- if(i<n) sum(A[i,(i+1):n]*x_old[(i+1):n]) else 0
      x[i] <- (b[i]-s1-s2)/A[i,i]
      
      if(verbose & (k %% verbose_every == 0)){
        cat(sprintf("Actualizando x[%d] = %.8f\n", i, x[i]))
      }
    }
    
    err <- sqrt(sum((x-x_old)^2))
    if(is.na(err)){ cat(sprintf("Error en iteración %d: NA detectado\n", k)); break }
    if(verbose & (k %% verbose_every == 0)){
      cat(sprintf("Error en iteración %d: %.12f\n", k, err))
    }
    if(err<tol){ if(verbose) cat("¡Convergencia alcanzada!\n"); break }
  }
  
  if(verbose){
    cat("\nResultado final x:\n")
    print(round(x,8))
    resid <- A %*% x - b
    cat("\nChequeando residuo (Ax-b):\n")
    print(round(resid,8))
  } else {
    resid <- A %*% x - b
  }
  
  list(x=x, residual=resid)
}

7.6.1

A <- matrix(c(3,-0.2,-0.5,
              0.1,7,0.4,
              0.4,-0.1,10),3,byrow=TRUE)
b <- c(8,-19.5,72.4)
cat("=== Ejercicio 7.6.1 ===\n")
## === Ejercicio 7.6.1 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 2.66666667
## Actualizando x[2] = -2.82380952
## Actualizando x[3] = 7.10509524
## Error en iteración 1: 8.097369306156
## Actualizando x[1] = 3.66259524
## Actualizando x[2] = -3.24404252
## Actualizando x[3] = 7.06105577
## Error en iteración 2: 1.081854409393
## Actualizando x[1] = 3.62723979
## Actualizando x[2] = -3.24102090
## Actualizando x[3] = 7.06250020
## Error en iteración 3: 0.035513716553
## Actualizando x[1] = 3.62768197
## Actualizando x[2] = -3.24110975
## Actualizando x[3] = 7.06248162
## Error en iteración 4: 0.000451402072
## Actualizando x[1] = 3.62767295
## Actualizando x[2] = -3.24110856
## Actualizando x[3] = 7.06248200
## Error en iteración 5: 0.000009105526
## Actualizando x[1] = 3.62767310
## Actualizando x[2] = -3.24110859
## Actualizando x[3] = 7.06248199
## Error en iteración 6: 0.000000143500
## Actualizando x[1] = 3.62767309
## Actualizando x[2] = -3.24110859
## Actualizando x[3] = 7.06248199
## Error en iteración 7: 0.000000002566
## Actualizando x[1] = 3.62767309
## Actualizando x[2] = -3.24110859
## Actualizando x[3] = 7.06248199
## Error en iteración 8: 0.000000000043
## ¡Convergencia alcanzada!
## 
## Resultado final x:
## [1]  3.627673 -3.241109  7.062482
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.6.2

A <- matrix(c(-5,1.4,-2.7,
              0.7,-2.5,15,
              3.3,-11,4.4),3,byrow=TRUE)
b <- c(94.2,-6,-27.5)
cat("\n=== Ejercicio 7.6.2 (iteración de 5 en 5) ===\n")
## 
## === Ejercicio 7.6.2 (iteración de 5 en 5) ===
res <- gauss_seidel(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = -1105.93494865
## Actualizando x[2] = 14833.76364228
## Actualizando x[3] = 37907.61031718
## Error en iteración 5: 38011.460862486500
## Actualizando x[1] = -830733516.96269321
## Actualizando x[2] = 11348068276.68814278
## Actualizando x[3] = 28993220823.19237137
## Error en iteración 10: 29072609329.112831115723
## Actualizando x[1] = -635376537625125.00000000
## Actualizando x[2] = 8679433725753162.00000000
## Actualizando x[3] = 22175116717601740.00000000
## Error en iteración 15: 22235836062802612.000000000000
## Actualizando x[1] = -485960113481637363722.00000000
## Actualizando x[2] = 6638360639013782552426.00000000
## Actualizando x[3] = 16960371682645683208082.00000000
## Error en iteración 20: 17006812144540355396244.000000000000
## Actualizando x[1] = -371680756072278793440468264.00000000
## Actualizando x[2] = 5077270403350358095828886064.00000000
## Actualizando x[3] = 12971936575430101291228024840.00000000
## Error en iteración 25: 13007456004927498693828668220.000000000000
## Actualizando x[1] = -284275562133518312848608800202644.00000000
## Actualizando x[2] = 3883289286399371217266062868422026.00000000
## Actualizando x[3] = 9921429887598567777880244284264860.00000000
## Error en iteración 30: 9948596496636219420028828404002444.000000000000
## Actualizando x[1] = -217424749347562798544844402640048048668.00000000
## Actualizando x[2] = 2970087169655821911808246828680228402686.00000000
## Actualizando x[3] = 7588286486150226123282606064024224408206.00000000
## Error en iteración 35: 7609064540782513806486866404228028202282.000000000000
## Actualizando x[1] = -166294708113696862890884484686202008644484220.00000000
## Actualizando x[2] = 2271635498866851865600040448484624244888282822.00000000
## Actualizando x[3] = 5803809778252402459628246280480406204028424000.00000000
## Error en iteración 40: 5819701623778798161266806428220802068644248860.000000000000
## Actualizando x[1] = -127188510183878032466828606806466000264268280860860.00000000
## Actualizando x[2] = 1737433127361724098562026240886024620024406442042066.00000000
## Actualizando x[3] = 4438974201042218240864806248806884424080660684666248.00000000
## Error en iteración 45: 4451128888220793532406640006068464484062020022004604.000000000000
## Actualizando x[1] = -97278604390310293896424444400620002008040826804086402826.00000000
## Actualizando x[2] = 1328854859663766467122424246808244824442480860282642600062.00000000
## Actualizando x[3] = 3395096102452148975460242420882240484482066604404044404628.00000000
## Error en iteración 50: 3404392468954305394246466440488266664602660460804822806046.000000000000
## Actualizando x[1] = -74402372183191231552482402684806022842826804444646224280084620.00000000
## Actualizando x[2] = 1016358678928520015140800604068820006662448660466208264206284264.00000000
## Actualizando x[3] = 2596698476458693047466884400666820288620286480604080486042064640.00000000
## Error en iteración 55: 2603808690721940858248466886602244208060422048626680448086846426.000000000000
## Actualizando x[1] = -56905760739280362858286022662840428000024288642684808400464466406288.00000000
## Actualizando x[2] = 777349728392984307042646464644482088460026082444840826884062602428668.00000000
## Actualizando x[3] = 1986053641536920905028666800460640620682428406864626086600066068488626.00000000
## Error en iteración 60: 1991491803517471652864866864046848288604480264446400688464426280666446.000000000000
## Actualizando x[1] = -43523687623064843036804480604644688886202466886282206006264262006208268228.00000000
## Actualizando x[2] = 594546603242165899586008626820024028646224868826808082684446868408664420642.00000000
## Actualizando x[3] = 1519009273822713172324686862680062026284200260026224486644288688262886808064.00000000
## Error en iteración 65: 1523168586697371569506642462088406202008240682028824488408226888022464800200.000000000000
## Actualizando x[1] = -33288569728276027524262060482880604460228020840828220060600002004406204624286482.00000000
## Actualizando x[2] = 454731828565192320288620800644826404846020642808800868000220042864484804626402482.00000000
## Actualizando x[3] = 1161795998709187752246262040406202426484846806286086464026026884460686862660008206.00000000
## Error en iteración 70: 1164977199205085317760440886620066440082620402204400228662648644682628422222048046.000000000000
## Actualizando x[1] = -25460362737440850348222026288268428644466040400884282602808642660424862402802822422622.00000000
## Actualizando x[2] = 347796177427691259766444888280682882842008202240220846800024822004206620426826024062802.00000000
## Actualizando x[3] = 888585715622308650800468422042228000648066640680060264028800282844626808020666606806808.00000000
## Error en iteración 75: 891018818613131259524622600864266624204442002004844664202426824082060800284086066864026.000000000000
## Actualizando x[1] = -19473052642794853642620282266648226846624646828800068246644486422646886426442284426404080424.00000000
## Actualizando x[2] = 266007729027862460442668222828400666442444264226200406662862462800882242684006884200068804442.00000000
## Actualizando x[3] = 679624112051752231646886642062808402648640828066046446224408280262080002282622006028466486626.00000000
## Error en iteración 80: 681485041650997674582028688884222642240464844262840426482042282808440804080886082288624648884.000000000000
## Actualizando x[1] = -14893730428727389078464260008206060426868802060662602424202622600246406220046204440608086286806268.00000000
## Actualizando x[2] = 203452816606278321408268628484086488288680800820820426060040880060002060284426400044422482242848442.00000000
## Actualizando x[3] = 519802339337241295520666204668248026422688820040448860828826080462004428686860282004288666444660026.00000000
## Error en iteración 85: 521225648990145472084242026868086244086204482068080042462240062042004044624482422200462240666228088.000000000000
## Actualizando x[1] = -11391290834191631273080448046062826044224240862024448484206088802208068866860886884060642428424082662026.00000000
## Actualizando x[2] = 155608443169304614502024860888868408808006682288208402628682622208424680002202608202648864640228480040200.00000000
## Actualizando x[3] = 397564576048905198764242004480066288660080664680284620682886460004628428420022080666828640288446280620244.00000000
## Error en iteración 90: 398653177341974899882642042860628886062204220624268646244066888642842460604264806466428604002848826860046.000000000000
## Actualizando x[1] = -8712491977083931899624068804620642446666684404800824068088282260064840662048242624806086888682024464662060000.00000000
## Actualizando x[2] = 119015248790748312560268486006680468444602040808280042086260266028208284020428264240668864688224484408424442024.00000000
## Actualizando x[3] = 304072490959683771520064240828682286626464028042620406206646006402028844246082222804020800260644804600268246484.00000000
## Error en iteración 95: 304905094583817813524680466468648626082662808688460488044864664462880082684604626668020400848048426842666428442.000000000000
## Actualizando x[1] = -6663644845491175912820866864806266028428482206228028444264266824064202848802662226464404202006268260884804266882660.00000000
## Actualizando x[2] = 91027383580416423784804068002088080024060066660266860846424260080820840826868606440442426200606884484842046246248266.00000000
## Actualizando x[3] = 232566192585159412426826248226488602406800246028260600884004620662842444660866262624264842002886262222228084440848642.00000000
## Error en iteración 100: 233202999466920827546664880488206620622602468448420288448488804684428240088462004820466688884264464400484280486822460.000000000000
## Actualizando x[1] = -5096608724993415707206626600024424464686206640808600080846046466068488406460462840202226628868802286404668880428468422642.00000000
## Actualizando x[2] = 69621201028320471776080044824420288402484604444888080246442420088220446486020440044442604484242840268680826002880082688482.00000000
## Actualizando x[3] = 177875459114546245818284288488260802680640480080840284426422840640466620664220804008040088000826264448086242084660248020682.00000000
## Error en iteración 105: 178362513209561082224242886884866004482822268624642022628604842246684882606626424824602646444440828622404806808044864286400.000000000000
## Actualizando x[1] = -3898079969441163128000806008602480084262660268400224282246440826248206262080060866602620662842620660400026082640402086260826200.00000000
## Actualizando x[2] = 53248939406719558072408260022044040886246228682666682608440260022486808800208080882624400404440042646604062680080202262268088860.00000000
## Actualizando x[3] = 136045908493879740778468648260848088860408880228428282844808640826066848006808428646200644640602080864400002282806266642848608068.00000000
## Error en iteración 110: 136418425968588190988064064262044266208042662448820426842062040006642482020046282406662028680086862086246866682844228082008882884.000000000000
## Actualizando x[1] = -2981399645933788008202426020280226648402880088224480620264204626200824202660426682020880068442680862404402266882804446608620486640840.00000000
## Actualizando x[2] = 40726811747862381256684686248228808640226604088666482602464284880662080042862862866822848608228242688480046402624022844004066402488462.00000000
## Actualizando x[3] = 104053079104106297618846802826606442868642008828804448808404644040440206440686440488848048088426486660446248064268262080404242424402088.00000000
## Error en iteración 115: 104337994620439104514000888680826044606424424484228846488044880420022260264202660462666066406684244642844424868848600666228806482688026.000000000000
## Actualizando x[1] = -2280287710477223720260868468228848446624822628864602262482484800866880262628808826480482460228486088602824244280046062482880440268646600008.00000000
## Actualizando x[2] = 31149412807581882844864048266804082206240080444804802046626860404828824648226428628028448860868222840000004222280222480846842080028442820808.00000000
## Actualizando x[3] = 79583747801812620440688484084040400040446468084464640846646684486602008426602802884842820460660648408888628624880686460482686006662004268088.00000000
## Error en iteración 120: 79801662012443218058402066486664260088662646004408062206066220602608208446202208480800246822044822642688684226204288206400640004444200244466.000000000000
## Actualizando x[1] = -1744050667492745151686486640648646664842068608626024228082062008884488486024840442240282082248400880482040024008680064446224264026480248080646040.00000000
## Actualizando x[2] = 23824254259433225304004642000802024806262220844268882466062286286824442202608488442646482680228284262820442680800284624880428088644662600082660282.00000000
## Actualizando x[3] = 60868673649202619872082000264826048068226280660426866464448886828006846000600408228044288280220442444220622028606408644202200026424666240284002448.00000000
## Error en iteración 125: 61035342715899867334066406200886806048402682486046420284882040664864404448260840688806484466802800044084482000244822220268066842224086622880666004.000000000000
## Actualizando x[1] = -1333916205751647973366086846088688068264282842224420488260228468460404822886004280608446040042022488422840464084042422626400668424008262226428888442284.00000000
## Actualizando x[2] = 18221694724208986683688246024888406260820860802666048446424420620886268004620466004408044884664462440828862020686206266088400286468468466666008282024460.00000000
## Actualizando x[3] = 46554673964836201916688468480464484666668402202660086000600624826880448686608060082840280280680408288668406820600062848282000242286428602224602860662226.00000000
## Error en iteración 130: 46682148798686404360444004808606048284220600020640826820062280428442840804084086800402442204446882862228400846222666804468202202288204222428822000466682.000000000000
## Actualizando x[1] = -1020229788693495374562282642800628686022800260200042842200444666442462060862868808460822082620604444044202604228402468624022222022266060262066024064268848408.00000000
## Actualizando x[2] = 13936644354389309049806684604448608886402282066868042442288462662204626260200880006608424664286084660280206022028404284402046046640440244244064004868284468244.00000000
## Actualizando x[3] = 35606783227493393010008860648060066800600282664666424602686884246282686868680020086440042004226262286860422862440822882486662440862026040808042066440226488022.00000000
## Error en iteración 135: Inf
## Actualizando x[1] = -780310500201964107820620600804684266224064286666624062624882608440624886800462246044802244864868484486424442028002688028886084462084242802628042068040046002604420.00000000
## Actualizando x[2] = 10659275045513807151264266468080864008664660002646666222448628600868422048020240468468864040462006446222268204860022602824602228020486886648064280006400004060828620.00000000
## Actualizando x[3] = 27233420488935990918848062226422286228602400008484628026606428266084048880628886466424802084086488004886446482404080066864260460068464442660440462628620464480026684.00000000
## Error en iteración 140: Inf
## Actualizando x[1] = -596811113999303995766440484420024622648426280484206648622804066484280668284426844606826222642844660442484666262800488824880682202062466640004206884240066480666408822486.00000000
## Actualizando x[2] = 8152618493140282867240008466024268828044288862266488244640022666260406022262224206622044846440606886444842404242046806622288608482080822268682028868284006822880880844826.00000000
## Actualizando x[3] = 20829154568350182258208626840844422604080880460428820482222424400600804086626064240864802044668246466262842464440826604628488086202800868446224066242086824808846808820844.00000000
## Error en iteración 145: Inf
## Actualizando x[1] = -456463812419415750048602662400004084244264042448424028840086040600866606646200826608444660266868640662846082004268466646420826648842644822082660624604448420828622424848686888.00000000
## Actualizando x[2] = 6235432335772798834426486000420288228886644842488442446868022822268620406868244220462644242226264084404886462606826840420866466286864808664640820040228426444248840064664288840.00000000
## Actualizando x[3] = 15930928698746556299684266400264442062600446864862860826624882860086628644862462204808800242800888606008626606664846880284068880204624628464460604442606642628440264868282222606.00000000
## Error en iteración 150: Inf
## Actualizando x[1] = -349120864476244858420644880862226046680082086860280400480222682824422086280200462244866866642800820464402680826424666066428220886240202880488206682082660226828448046864268886882404.00000000
## Actualizando x[2] = 4769095530069964403808022262462480226884220624408640242862286462666880662662406448424204402460248280626408464600404866600088684860444244046824440864220462844084606286280424888820622.00000000
## Actualizando x[3] = 12184579473532093327466204448226848060684440266686046008808884886820622480668286808284220442206866402406426266466844206402860860804840008200882482420226206222888468426624440642444440.00000000
## Error en iteración 155: Inf
## Actualizando x[1] = -267020900006521863328648480888646606240888862062002664422868806882648286600248860284266644680022682860882826824640602224820600806400004602024242442204206026808208444882220464226426844006.00000000
## Actualizando x[2] = 3647585435968726159868428644206664026620488026846606022460088280620642080804244246200228026068246484088222600482864020224466820802284080428668480404442826846608444680826224642842406480620.00000000
## Actualizando x[3] = 9319229264926707240088804600640446462008604622622404888822824060062620024846246204406084660888462846022846002066408248480048462668628204266246002844624004468006244404446800026042240862826.00000000
## Error en iteración 160: Inf
## Actualizando x[1] = -204227728260406982800646024040624466884242820628026040404800262806402206626600422026606888626062220660488280602242260462484064084482428848088268666208086224644860604246246648208626822044062082.00000000
## Actualizando x[2] = 2789811910623641857064804248820628448080046466800864204488422642280046422844002004666406686608464644662442208864680882462444442284200804482668206606402084404226026248684484804866484802480440884.00000000
## Actualizando x[3] = 7127700572754409800424828426020086824844842642260088082600820820242440228462862684002048006442244642040840480426080400444224288484426222284040444282824822840846680020624668424044006682042688204.00000000
## Error en iteración 165: Inf
## Actualizando x[1] = -156201125040728748496842666486420484822262804804066860466004068448640226242024606284262040444600800602246624464862440642828486884028422620480062222444484488420482402248420088642062660080248420020406.00000000
## Actualizando x[2] = 2133754132229260008486000086644688424486046844866048426262440684868024228684840040688080628008446626642868884280408462280888804466448286428282228820080006680048208802866066628886800882026886884448404.00000000
## Actualizando x[3] = 5451536174353695993286442626460242862082884624624006248004268242688060468266226642882048486806086406482088686428046404620686284000622068628840866482466682460844868022426642826202806286008806042004200.00000000
## Error en iteración 170: Inf
## Actualizando x[1] = -119468554401579249432882848880024286480668228244082404424464466024880600844824606008444864662280044024624402442620080040004688462022464848844646402066864020228004682222080606860642864086486602866404406006.00000000
## Actualizando x[2] = 1631976220141548136262882842042008846842406484846202882424024808200808644886626246068040484806420824088022600088882404444680422046668082446202024828222282866064208600640484088820642604446024420826268082024.00000000
## Actualizando x[3] = 4169541966155054607008468808240288682668684224246226488646244248684660888642826242244406404628206408840200664026406888200682844282880266622686066084620084664862486802620668608662208028044860642484240608468.00000000
## Error en iteración 175: Inf
## Actualizando x[1] = -91374088932339917632062286248648444806668288260882028026644000668200042220068402860028804860862804282402644226282666040462464022266602662400424604848808620202020024262488088602242028828044624646044004468480408.00000000
## Actualizando x[2] = 1248197410788344980264884848846280200260460042040266084466044086486424226424424442804000044228884406824646084084408220202608044040246240664248406044606026842066228264620882840268826220064800660240600646248828264.00000000
## Actualizando x[3] = 3189024093670116937060800402042442000608846602642886246820882266246282026646028880686804466880088264204684844608640864462482868248000668028800862664286640686688066202240080842282040464846040422268024882042486662.00000000
## Error en iteración 180: Inf
## Actualizando x[1] = -69886374452563022618262086000042486200260806600006082600262028686424222206646082202842822662408402024864228806840862862608040828440282024404824082866684202844846048448408680820262626446608264466086606446826222208604.00000000
## Actualizando x[2] = 954668797909075838160488006640044006208662404682228682444284460422648462862620864848202242482668486084246400686488402420206022400604820466206464060404266044060086086604440680484082824880600484604420482424422686660622.00000000
## Actualizando x[3] = 2439086775612111690084826846200064602408428662626482626486688626028482860244806246822466224268228624020460600480086004248462044664888006202860404806422880626028084824086082828084848044206028068880044486244206460040662.00000000
## Error en iteración 185: Inf
## Actualizando x[1] = -53451754115331404252666808202628624642684084860028208888468028624628840022086664068002268488802448066422408840286042208440464246066680240680228240600086808200482406028884202808868484860662884420206046242222040842262468446.00000000
## Actualizando x[2] = 730166963834299683844008204428048442842402824228826008688222482802662600280220682602824040846480888480062482488680268844462602242222602820280220642840022240048268666826242640246006624828208680486080426282680248284660800040.00000000
## Actualizando x[3] = 1865506225172247818082864604464246040820660002422882000222682066846486242202488822488404460200604264240222600802448468846622640086804222066460040464204844608604268666464268620446248868648040282802640086060404888868826020008.00000000
## Error en iteración 190: Inf
## Actualizando x[1] = -40881932141796249560600424244268626846088688868426404048486402288084244260806828082428204008262842000288668680006288088420084622440004682462240646064288860082680284448282608880624480048462620406622086284024004046686660444448842.00000000
## Actualizando x[2] = 558459432467778919066208082224000660226888086622886224880020042804004448842062046404886844000440224620002886884068662204064400400800682684606600204486208088464608042684206662060660604604220804660262862842624400646002068222240284.00000000
## Actualizando x[3] = 1426810030275794576760804048626662020660062662840008088604880024822404024846448420864886040440624400464044606828448622848606820000220680608060624208842422642082222868042266884866648288608082008280644686246200808060886846882268882.00000000
## Error en iteración 195: Inf
## Actualizando x[1] = -31268054777776712166648240808460408028484400040866222884640842420226806422862848828622400806660044284680486048844884226482424044062206088200460286620488028604660620246660820608480804666242248404288408806084088686040862884008400068640.00000000
## Actualizando x[2] = 427130989430808558400806686466444484000062248868666886428444248680608202066628462882244626404824402604000086084400000066044628424828486866824824080066400442886268604288460044802686482666820660060620082424080240802608424288826826882688.00000000
## Actualizando x[3] = 1091278514660353859866242286200286200862840242840460486280660602222248426664866648280688208028444228226888406802262644066864826004888804822840004200846822428048424262822280400446606688626224462282602464264482606608482862424202644604266.00000000
## Error en iteración 200: Inf
## 
## Resultado final x:
## [1] -3.126805e+232  4.271310e+233  1.091279e+234
## 
## Chequeando residuo (Ax-b):
##                [,1]
## [1,] -2.192128e+234
## [2,]  1.527946e+235
## [3,]   2.750000e+01

7.6.3

A <- matrix(c(3,-0.5,0.6,
              0.3,-4,-1,
              -0.7,2,7),3,byrow=TRUE)
b <- c(5.24,-0.387,14.803)
cat("\n=== Ejercicio 7.6.3 ===\n")
## 
## === Ejercicio 7.6.3 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 1.74666667
## Actualizando x[2] = 0.22775000
## Actualizando x[3] = 2.22430952
## Error en iteración 1: 2.837299308260
## Actualizando x[1] = 1.33976310
## Actualizando x[2] = -0.35884515
## Actualizando x[3] = 2.35121778
## Error en iteración 2: 0.725100055643
## Actualizando x[1] = 1.21661559
## Actualizando x[2] = -0.39980828
## Actualizando x[3] = 2.35060678
## Error en iteración 3: 0.129783127654
## Actualizando x[1] = 1.20991060
## Actualizando x[2] = -0.40015840
## Actualizando x[3] = 2.35003632
## Error en iteración 4: 0.006738314132
## Actualizando x[1] = 1.20996634
## Actualizando x[2] = -0.40001160
## Actualizando x[3] = 2.34999995
## Error en iteración 5: 0.000161178657
## Actualizando x[1] = 1.20999808
## Actualizando x[2] = -0.40000013
## Actualizando x[3] = 2.34999985
## Error en iteración 6: 0.000033749542
## Actualizando x[1] = 1.21000001
## Actualizando x[2] = -0.39999996
## Actualizando x[3] = 2.34999999
## Error en iteración 7: 0.000001945764
## Actualizando x[1] = 1.21000001
## Actualizando x[2] = -0.40000000
## Actualizando x[3] = 2.35000000
## Error en iteración 8: 0.000000037579
## Actualizando x[1] = 1.21000000
## Actualizando x[2] = -0.40000000
## Actualizando x[3] = 2.35000000
## Error en iteración 9: 0.000000008684
## Actualizando x[1] = 1.21000000
## Actualizando x[2] = -0.40000000
## Actualizando x[3] = 2.35000000
## Error en iteración 10: 0.000000000555
## Actualizando x[1] = 1.21000000
## Actualizando x[2] = -0.40000000
## Actualizando x[3] = 2.35000000
## Error en iteración 11: 0.000000000010
## ¡Convergencia alcanzada!
## 
## Resultado final x:
## [1]  1.21 -0.40  2.35
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.6.4

A <- matrix(c(5,-0.2,1,
              0.1,3,-0.5,
              -0.3,1,-7),3,byrow=TRUE)
b <- c(1.5,-2.7,9.5)
cat("\n=== Ejercicio 7.6.4 ===\n")
## 
## === Ejercicio 7.6.4 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 0.30000000
## Actualizando x[2] = -0.91000000
## Actualizando x[3] = -1.50000000
## Error en iteración 1: 1.779915728342
## Actualizando x[1] = 0.56360000
## Actualizando x[2] = -1.16878667
## Actualizando x[3] = -1.54826667
## Error en iteración 2: 0.372538816710
## Actualizando x[1] = 0.56290187
## Actualizando x[2] = -1.17680784
## Actualizando x[3] = -1.54938263
## Error en iteración 3: 0.008128467430
## Actualizando x[1] = 0.56280421
## Actualizando x[2] = -1.17699058
## Actualizando x[3] = -1.54940455
## Error en iteración 4: 0.000208351315
## Actualizando x[1] = 0.56280129
## Actualizando x[2] = -1.17699413
## Actualizando x[3] = -1.54940493
## Error en iteración 5: 0.000004620499
## Actualizando x[1] = 0.56280122
## Actualizando x[2] = -1.17699420
## Actualizando x[3] = -1.54940494
## Error en iteración 6: 0.000000090254
## Actualizando x[1] = 0.56280122
## Actualizando x[2] = -1.17699420
## Actualizando x[3] = -1.54940494
## Error en iteración 7: 0.000000001588
## Actualizando x[1] = 0.56280122
## Actualizando x[2] = -1.17699420
## Actualizando x[3] = -1.54940494
## Error en iteración 8: 0.000000000025
## ¡Convergencia alcanzada!
## 
## Resultado final x:
## [1]  0.5628012 -1.1769942 -1.5494049
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.6.5

A <- matrix(c(0,-3,7,
              1,2,-1,
              12,2,2),3,byrow=TRUE)
b <- c(2,3,6)
cat("\n=== Ejercicio 7.6.5 (iteración de 5 en 5) ===\n")
## 
## === Ejercicio 7.6.5 (iteración de 5 en 5) ===
res <- gauss_seidel(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## 
## Intercambiando fila 1 con fila 2 para evitar pivote cero
##               b
## [1,]  1  2 -1 3
## [2,]  0 -3  7 2
## [3,] 12  2  2 6
## Actualizando x[1] = 18729.14814815
## Actualizando x[2] = 30265.37448560
## Actualizando x[3] = -142637.26337449
## Error en iteración 5: 160402.734377973975
## Actualizando x[1] = -2872390209.20134068
## Actualizando x[2] = -4693267274.41052341
## Actualizando x[3] = 21927608532.61856842
## Error en iteración 10: 24681223429.598251342773
## Actualizando x[1] = 442305469618633.06250000
## Actualizando x[2] = 722687686908876.12500000
## Actualizando x[3] = -3376520504620671.50000000
## Error en iteración 15: 3800533059497995.500000000000
## Actualizando x[1] = -68108278936547311616.00000000
## Actualizando x[2] = -111282853668353032192.00000000
## Actualizando x[3] = 519932527287636918282.00000000
## Error en iteración 20: 585223977441296121846.000000000000
## Actualizando x[1] = 10487633520770128877848448.00000000
## Actualizando x[2] = 17135857852193435231422046.00000000
## Actualizando x[3] = -80061658976814202058468460.00000000
## Error en iteración 25: 90115543936766943208404666.000000000000
## Actualizando x[1] = -1614935197060007174086664484820.00000000
## Actualizando x[2] = -2638660086903213749062208664866.00000000
## Actualizando x[3] = 12328271269263256230408602028264.00000000
## Error en iteración 30: 13876415820354289817600446464060.000000000000
## Actualizando x[1] = 248675326568022136682460280620248404.00000000
## Actualizando x[2] = 406313305950121384160402286684800842.00000000
## Actualizando x[3] = -1898365265358254204260824248826808426.00000000
## Error en iteración 35: 2136755853734761821482886048286066686.000000000000
## Actualizando x[1] = -38292197827065273224686868026262888860488.00000000
## Actualizando x[2] = -62566036228588494116446848248424224886002.00000000
## Actualizando x[3] = 292319223190980133466828286244684242426460.00000000
## Error en iteración 40: 329027728599242788202440402848686648044202.000000000000
## Actualizando x[1] = 5896412943991915951244200840286202628882800044.00000000
## Actualizando x[2] = 9634212889492692271424042462006222684224408220.00000000
## Actualizando x[3] = -45012690553444186718486680844084002888000488688.00000000
## Error en iteración 45: 50665239080990167764442804024620426420284244008.000000000000
## Actualizando x[1] = -907957432035966812564606686842246086822220824402604.00000000
## Actualizando x[2] = -1483521469395171612960866664404266206846084442202028.00000000
## Actualizando x[3] = 6931266061610972654420224624066008204648620068682004.00000000
## Error en iteración 50: 7801672102415630486448804022428440060264800248226404.000000000000
## Actualizando x[1] = 139811561066011644196024468280640240884084206442882202622.00000000
## Actualizando x[2] = 228439621939088991926226268408086462080860642080020802424.00000000
## Actualizando x[3] = -1067308988335158943606662808680488422024448048284006400462.00000000
## Error en iteración 55: 1201338209345340725544846280806664082000642880406800040660.000000000000
## Actualizando x[1] = -21528842562457027298260060440824408460804244648866880004846264.00000000
## Actualizando x[2] = -35176208735927154282826866860646226666062224228682426240282222.00000000
## Actualizando x[3] = 164349264110669318064024268420466228484684408862844084460626066.00000000
## Error en iteración 60: 184987714721592570262600844226022484226606242868282226284026648.000000000000
## Actualizando x[1] = 3315112559684711287466440248026088208002468646244802060808428246664.00000000
## Actualizando x[2] = 5416598270169820980464262442888048024468008288620808244240428486480.00000000
## Actualizando x[3] = -25307273628278087956880200480604288422628404604862242886048404620002.00000000
## Error en iteración 65: 28485279442302479838424868222668602664846620222866466882040286484628.000000000000
## Actualizando x[1] = -510476643205340295926044602440400462280422062280642662222820622248848068.00000000
## Actualizando x[2] = -834073309055641131068004462284422424664024604804648226486842802280686028.00000000
## Actualizando x[3] = 3896933168287683200268080622882020440886420688268482828248460204646044468.00000000
## Error en iteración 70: 4386297469144036983662240868480424064824880046468064846424084622020486480.000000000000
## Actualizando x[1] = 78605597416871930592080626002402284424088224440640422066062026082804428264882.00000000
## Actualizando x[2] = 128434535880250140112842880048046862026206460646068202822642464868248004806660.00000000
## Actualizando x[3] = -600068120381481672246248862842468084440246020224482026608248280288428200606820.00000000
## Error en iteración 75: 675422739902888943006600002208248400426044648868688282002068262024848860460808.000000000000
## Actualizando x[1] = -12104060053493755400288802224806886664482688644286686268406488246086406640480224688.00000000
## Actualizando x[2] = -19776954648568966282646662266488868260880888660062280604684226866248842086266460802.00000000
## Actualizando x[3] = 92401314969531502056088264260600202406660022662202462248260002202608648602604442662.00000000
## Error en iteración 80: 104004774137434392544082242084060864020246602660086206604882646448402880824446842682.000000000000
## Actualizando x[1] = 1863840166516394772422640484480624400646420488062608262220624820606242460608666262202802.00000000
## Actualizando x[2] = 3045348608852635915204006404620608628842222400220864440428844468446202286000086262802068.00000000
## Actualizando x[3] = -14228389607951005433822826824266086662666286666666026462848642262020640846404004224228088.00000000
## Error en iteración 85: 16015144892714141041040048824280864802660604860204688626482204228604020666666440628242820.000000000000
## Actualizando x[1] = -287002885888453936042282440626488286882206220662002444420480084880866204448086206800266428600.00000000
## Actualizando x[2] = -468937119705219545642240224462846442600848820840246640068406440028682624680642606242064082204.00000000
## Actualizando x[3] = 2190954435035943335684444206626046288228824202200406600266802066080026480864682400208008820648.00000000
## Error en iteración 90: 2466087427830019616682266628882006046644062468048622840200802428204886282244422064442088828806.000000000000
## Actualizando x[1] = 44194055900327319792044248600622428880242802284420640802402666626026288866400860402288860466646248.00000000
## Actualizando x[2] = 72209145973694494772286020864024624468046464642682022668000204826626000202686882862484028440228644.00000000
## Actualizando x[3] = -337373481375658428704628660206462882262084422260062040604822628820042668060468444466226882848824424.00000000
## Error en iteración 95: 379739755240554580364002668444420064062082000808660682428820262028004868628246264402626060664084660.000000000000
## Actualizando x[1] = -6805208842674669078624228668862440262848200628264684242062240066206062206060442222006648240048880480440.00000000
## Actualizando x[2] = -11119104338611572415488400604422084868066464240480222204408844840404086820246802624406028862644048684648.00000000
## Actualizando x[3] = 51950357394659586880048244440244440048004244880442682600826046240660842402046422686426822800284864686428.00000000
## Error en iteración 100: 58474115752272389312842028422446408020002286408488686466844060062086448802446600642884864084444820028262.000000000000
## Actualizando x[1] = 1047898104144691282560460246248428864440664282602228402288220644446664648448286200862480224424248000680424648.00000000
## Actualizando x[2] = 1712172047263517146880426400086600244644442046884206004020462048482246486226224486486408660686664808804046644.00000000
## Actualizando x[3] = -7999560672131664581822220062288246068486464622660204880042866688222202444026260026828268602008868048680822824.00000000
## Error en iteración 105: 9004119705202232420082468206660686824028062480442268806646286246040460204662066080424826680826686024668644220.000000000000
## Actualizando x[1] = -161360284754825092048806640068468424802046048240488246262444080640888226448200482460464288666068686862840266222844.00000000
## Actualizando x[2] = -263648314662420006662620608660880202640482466082688840822044680606440024420482604402244086600440066446242668686826.00000000
## Actualizando x[3] = 1231810023191370422362004486224668804886286002062640088422842880608842022086400644006840808242084002846686088444626.00000000
## Error en iteración 110: 1386496753693286502440602628844846608044208280060468684222008808460664202484408868406080462686262804002426082044242.000000000000
## Actualizando x[1] = 24847016511600716948228088684600884020424602628088240680064026804628284026868400486880680402404288246406224428206068024.00000000
## Actualizando x[2] = 40597809043448436308064220246022024402608462666228602048804060204684408086022666442806060268848042266488086068200406848.00000000
## Actualizando x[3] = -189679908113052729020020284860086288880226248868282862082420040400666406826266228022840404488080864282444440608644088868.00000000
## Error en iteración 115: 213499299314218212282288208820642666460408468886404208444464840024622842442628046604688022004428066666424428642002626886.000000000000
## Actualizando x[1] = -3826060610055398585604886882848466426080644846460460684842224086428224464626804866080600044426422262480628204004286684428286.00000000
## Actualizando x[2] = -6251441816492038884482808466002606660008420660442026044448220068684008288008664462840428840800000240848622486400264264404648.00000000
## Actualizando x[3] = 29207805476824430398842466848064464222222244404460480020682688022828808048802642440220662044664806260446426246642224826682064.00000000
## Error en iteración 120: 32875627502367420164060606268608862844242226482008866006442280088004486484068202286024826268840088820284884860008260200048604.000000000000
## Actualizando x[1] = 589154830117445717684628048862666848448864286408844428864646282666846846400660468088480608806446206466820222200028620844204644428.00000000
## Actualizando x[2] = 962626449697338905768466426046688226842684880648880208604460262660668622266608886246086482080406208620882080284000666644680640402.00000000
## Actualizando x[3] = -4497555430402013212644820448486648464866622800208662486044280426286084426408468846620282228426424440882200440604800266622648000660.00000000
## Error en iteración 125: 5062343938111648796648222664626004200862644444086282400404862046068886204408880660826440028008664622602428628468866400684844868622.000000000000
## Actualizando x[1] = -90720835142674432400268080886860246828880882026808424420262084240862262084864488488248246808842266042066206404620480008668088828600842.00000000
## Actualizando x[2] = -148229753848510970330604846046206426484246440642422064660282280064640682282802488648860808686644042440226224488880802848660062444640024.00000000
## Actualizando x[3] = 692554764704557544562420062866084246286280468248620444280224284248426204826866666222822844480064820804668440864868886082448800264408864.00000000
## Error en iteración 130: 779523558778924736320462682802682288486842822464020606468002224464224224000004002060262666848240840248066684086648088660208680084246680.000000000000
## Actualizando x[1] = 13969621410629261813660428868406080220684040026848460466620064604444884808880088006680062868000806680046246206020884462402222648428842026648.00000000
## Actualizando x[2] = 22825115529391938916862826608662608866402240408400048220428460482642422084060060466026682402660824440460866662800686842844464280846884622848.00000000
## Actualizando x[3] = -106642843993167507152206482006866820884660640826402080668626626682846460608404246424646240028022822248802246646468200662066608880824228248642.00000000
## Error en iteración 135: 120034708451284664058224826248048886462268062648420668062486206840800060042602440408884268486004600228826864242688400220280604620606224668446.000000000000
## Actualizando x[1] = -2151108089441673338882004680486464444480222444046824280244404220042866686660200688666484686640482604886008628826080460482022886646004486666662640.00000000
## Actualizando x[2] = -3514718775439175015268282826804080224040260080822002864840264424020260802686400044026080806082888484482408266840224628264466684066282462868242220.00000000
## Actualizando x[3] = 16421367312089214354202426886046842228202486024228468660046206466240628040048200006264840602806008248260646240624824844000860406424002046008002064.00000000
## Error en iteración 140: 18483509665255862370244002646886080468806246260808082428486202286028480086802242086242860626082488420600886424400664624004682886846660480286442400.000000000000
## Actualizando x[1] = 331237753439802913066644604882662242848664062464402648664060066220480006006464426808448868266682424004204460486608664428046806886600886088446868406468.00000000
## Actualizando x[2] = 541212948276969757844688864200084048686268422486608284208844680000440842880868642864828440800642286268028648060246420226404040284620086448688402224082.00000000
## Actualizando x[3] = -2528639468915787418826820426080684622020608666066440468002888284866644200284686686006606044042646048680442666680020680442220802840428242026224026822604.00000000
## Error en iteración 145: 2846177859333574409020288664800064800024808628066428006686240682804288844440004244606422064668486066060626084064088262206266222024800446442808844804004.000000000000
## Actualizando x[1] = -51005549113213291188288060442842288060626080226626242244000842200866886426080062204408684666882486868846284022608686806442862444282484028686482244084086024.00000000
## Actualizando x[2] = -83338518412771101098022600464004444066224206088826286248662066062606448640026026866440062228000024204808022088820060286240822224808224424840202864608204824.00000000
## Actualizando x[3] = 389371813092050872042424686400808248644822688420262826008048040228460682046864462628004462044686208604208426288664840004448486880844480882482806428444688046.00000000
## Error en iteración 150: Inf
## Actualizando x[1] = 7854074643738355109008880402604260882264660068820448462042200028400406068402442060808626488480886004868280826822624822404424488884242424200664440828666824002880.00000000
## Actualizando x[2] = 12832857516338416227048286484864802848042848282804420640602604844220668044466826402048288266264026804628622468644064280822442024808228686042868284884240826846046.00000000
## Actualizando x[3] = -59957305378768538060802028628428244068042800860208048468820846008200648822044628426826464606462040284080084646688664664646804048628622462680084602060048800488648.00000000
## Error en iteración 155: Inf
## Actualizando x[1] = -1209407399428104519602688488420204626820086080684064426626280240442646608060000884084822222624424266046604208042666880406044246042842608064008666662006204406804886482.00000000
## Actualizando x[2] = -1976063831840414021862020242686022088602648640642244624220660080246268808482604408026202404266086022028620686462448068482800822608224444604424684848888042442040428668.00000000
## Actualizando x[3] = 9232508228409041548866262208808686064446280888600604280288826880648684880402628240406066684286200008268248622080244440626408408242662240820482224004062848424204024002.00000000
## Error en iteración 160: Inf
## Actualizando x[1] = 186230246609326361840228484844082068242240662002008882468860280206022288404800480860606060068044608046088442484880642660200664844462420660046268668286620266006602664406880.00000000
## Actualizando x[2] = 304283614349828819680480460800022228660026400660044604202446262004886262460644224808262200208024080002882622668660486420042260842020480684068888662062046222262408688420840.00000000
## Actualizando x[3] = -1421665094005786883446648064646446808620204628602620226446062028880242608446082024406404086664062664662228240424680848626422048840826240820868800002428440868624262282626262.00000000
## Error en iteración 165: Inf
## Actualizando x[1] = -28676610353608331820228666068088004800248420864800042802226844004660062846806062688602066888088060600640680806606486006666620288244682464860680046040044824086040002080280844848.00000000
## Actualizando x[2] = -46855023845845451592680648442224682200280260882824804420420406440604028086826084668804064086068200600426684886426866002420266428864088620000004042486480802242200046424228202480.00000000
## Actualizando x[3] = 218914685967495449546066046042284864800808480484284668686660626644488086880422826422220448648802804440028002266444468664862822228244028484248822828442466682008486886624068826066.00000000
## Error en iteración 170: Inf
## Actualizando x[1] = 4415759503867262297862248406460840864442806606802646084020820488000862262844668060444068204426482240684828288466446040804486228800866604084040264886208004062860624402460860240884284.00000000
## Actualizando x[2] = 7214957217744713404664868024248880862220820242808228082866426604862866020608842226642020006286024004888484426040808626264664020066648888062682842400866284824000422624064466040622802.00000000
## Actualizando x[3] = -33709514240948290872426608628886404066228464006626262880204806402808046868260208026880246242242820286220408448484422488608000644820224660202846200204062844680422682668282044242888440.00000000
## Error en iteración 175: Inf
## Actualizando x[1] = -679959442749848069400280820466402400466622602486224220006608642802226822426684440684480080488080426220848842222404642688848082242266280640460688620842804686848664260008606282446666844682.00000000
## Actualizando x[2] = -1110993088492520567868048840286828662806482404686622682268028428682048882246424068248662406200240648666626266828840022604446800684088426824688240420848660008282002640060248022442226844602.00000000
## Actualizando x[3] = 5190749744991608742822240202620826224480028820284824200082284668226600246808660664804688664246206046860046680622248882820446244088464666824280646626880246642080242628464804068808404420060.00000000
## Error en iteración 180: Inf
## Actualizando x[1] = 104703357005690318128204080820226048088080662622002644048882468282808024608222620406280640468882824600446804488066066860402880840022466268404626040206804444028028608866002448624426648860026280.00000000
## Actualizando x[2] = 171075947566598975680808688264040624600086884600228042660682822844866242400804266246024286486622462200868642020644066620606424626820860248806400244688480428202420600002624408628822266004882246.00000000
## Actualizando x[3] = -799296089600740884406004082402208664048440242248602462028068226608662220488420628860668260808000866446664040248280862446080664062828846646862404604286626668822646240662226888260288662488488006.00000000
## Error en iteración 185: Inf
## Actualizando x[1] = -16122715972479212953002600682066808226088660424824884664824680620046480682206222068640848406028660622484804048040246626860428628402620660624220224204404642626008220084002604242608606284626420060202.00000000
## Actualizando x[2] = -26343080023586263710486620280266444820028426604222886246264688088046624440602064882002840644622802000480022826862626828628200202002086262604406426800204802042622206024424262880208460466888460026484.00000000
## Actualizando x[3] = 123079375858461537270208066864420884468086040460422442068866848404864802620622020068842882084860406084640800442280246624222646444228628868060828204088286684222002262886048224444242684646422284808880.00000000
## Error en iteración 190: Inf
## Actualizando x[1] = 2482651729257441386882840488820642206282044284002464206628284640266284048282842420088228880668448862228824680602648282862448826084020642868286464244062086446446082800268884660240202680444222664804022260.00000000
## Actualizando x[2] = 4056431514774545073860662262660444040064848288226868820846422440206622602020282882824202642622608264608684220868886608228484626624660640244484462042482648446022824844466648402886642284240460464488246402.00000000
## Actualizando x[3] = -18952341890319192850604686260262800048240886664444862820044662480620642202686400206048040864228420864826602286068240480268024066864840628626464826884688224420260484464600602248642262240040860682406226220.00000000
## Error en iteración 195: Inf
## Actualizando x[1] = -382290404377643180042000806800662642662642060284648244666042222048462446482228802826868684404084246604260088442000868486462268248684822048686026888080626806668060646206280620664802868446000468880822860466864.00000000
## Actualizando x[2] = -624628426870489639400824684242680680080480042262882224246024868888620084482066004248406666442664420086428206640640622448644468806026486448826688848808040024240868482644060220448086404484424804608064080600660.00000000
## Actualizando x[3] = 2918370853136348933606848844864420282260644602626062844288442008420602600222886626606680484602448264422286426282200262440660202066608240868626002020422880482844226404628808208400466802028284240404428644606806.00000000
## Error en iteración 200: Inf
## 
## Resultado final x:
## [1] -3.822904e+206 -6.246284e+206  2.918371e+207
## 
## Chequeando residuo (Ax-b):
##                [,1]
## [1,] -4.549918e+207
## [2,]  2.230248e+208
## [3,]  -6.000000e+00

7.6.6

A <- matrix(c(0.151,2.11,30.75,
              0.64,1.21,2.05,
              3.21,1.53,1.04),3,byrow=TRUE)
b <- c(-26.38,1.01,5.23)
cat("\n=== Ejercicio 7.6.6 (iteración de 5 en 5) ===\n")
## 
## === Ejercicio 7.6.6 (iteración de 5 en 5) ===
res <- gauss_seidel(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = -9321102301026.12304687
## Actualizando x[2] = 4853798352800.46875000
## Actualizando x[3] = 21629256640879.19921875
## Error en iteración 5: 23997066795534.785156250000
## Actualizando x[1] = -237062167456621491786242868.00000000
## Actualizando x[2] = 123445910231560286880604882.00000000
## Actualizando x[3] = 550093572001411275646462264.00000000
## Error en iteración 10: 610313725075620149642600822.000000000000
## Actualizando x[1] = -6029165802958576179200024606400608020022.00000000
## Actualizando x[2] = 3139580931315866428466048486682882024246.00000000
## Actualizando x[3] = 13990445579407456434426682806846000606628.00000000
## Error en iteración 15: 15522015510870215914246268008846484268062.000000000000
## Actualizando x[1] = -153338850604311478548844260402448000286688822824222244.00000000
## Actualizando x[2] = 79848481053705791106684826800480820248048028462808082.00000000
## Actualizando x[3] = 355816860026605692202200624408620864426662842628262444.00000000
## Error en iteración 20: 394769043560085632842466464808824062086204248602068448.000000000000
## Actualizando x[1] = -3899843506229894590408064822026204402426684602620826440866664280426.00000000
## Actualizando x[2] = 2030774191226783842660844226222462880408642486864240660284684660648.00000000
## Actualizando x[3] = 9049435713866328857668602206006422808286662480804408848062444602400.00000000
## Error en iteración 25: 10040100632820963292020240022284408828202028484668806804600688884482.000000000000
## Actualizando x[1] = -99184122700446573234446866824424808688882002248460260468668882484068842662464444.00000000
## Actualizando x[2] = 51648369027570874216402404086844644844284484622468062266068826422462284682240602.00000000
## Actualizando x[3] = 230152912746394276324642628282268208444268680006026648240662204848082264260466682.00000000
## Error en iteración 30: 255348341926990764640428822460806226828646440084286824888240222042862602662284668.000000000000
## Actualizando x[1] = -2522534604309664514820400282226084042246484668062428286840888220804202420680660482640462444422.00000000
## Actualizando x[2] = 1313565060424902144642468428444080428460084604628848424646024002046448800008480828086420242684.00000000
## Actualizando x[3] = 5853443785946078920420420222006840804620622844082800020468800280460622886448828248260086484284.00000000
## Error en iteración 35: 6494235278052526428202286640022462828668840266222626200428826468648028486284284880204862668286.000000000000
## Actualizando x[1] = -64155236308916437118264262088282264420682022806028622088088688420026402822626446248888026448848026802844202.00000000
## Actualizando x[2] = 33407699032044887116646024806820240648648484824246420082848086220240046648648084242660200060080262284644684.00000000
## Actualizando x[3] = 148869739454416406320468028846844002806628202028666800804280246802860042264068620084628662688244800446026422.00000000
## Error en iteración 40: 165166891347039396976446242826022246266244664028868482886640226862866688684626840840826428662862602648200422.000000000000
## Actualizando x[1] = -1631650300781224078188888068628200026404260646282086602264020684026800026640202846202086062428204464426280088600828240640.00000000
## Actualizando x[2] = 849652893671420665920200624440226426006066868686468804882464668000220800086262864428006228668406066888266808862082084860.00000000
## Actualizando x[3] = 3786181286721591706880846268000084620428248462466820002684264480244824420824268444486484004848060222884222262662064826068.00000000
## Error en iteración 45: 4200664255180082341662400682680268048064280424066026000088602600266662084040206668808628202224082482804682686040068008646.000000000000
## Actualizando x[1] = -41497512240781016178866008042464822820266662826004462446066406000082066846022826682206042688080084646242224226604224888486088204048260.00000000
## Actualizando x[2] = 21609091935118231520002062488468028482026860482046864288604646422288880286888286206460884886444666084664208206662284220224620042000844.00000000
## Actualizando x[3] = 96293368877092463066204680480428464262404824624280440862208644608864442002806400402644682682002206646602840040246480800068482822686000.00000000
## Error en iteración 50: 106834850743008328114286268260404246262864224628084282420200888846480204420006008406480884002428804000044080280428808448242202020602828.000000000000
## Actualizando x[1] = -1055399874194407517540826624066006400660068062204866462662000826822028486002468646400022624826222000080488240004026680444280864842646884848840026464.00000000
## Actualizando x[2] = 549580726127642670004682004026244604462688404646846000004868280248426008026028622800248002204646442400028066040224822484082040028648002842080282424.00000000
## Actualizando x[3] = 2449014504989187548264240064402206240866020884426608666280066262626460800404822824428046084686084440286046466042280884668268002082668422006062444688.00000000
## Error en iteración 55: 2717114399039628327624648626020404842062002628206006642080420062642208886086608246240062644466460260464682664840244620044462880086406408626044004046.000000000000
## Actualizando x[1] = -26841823384172286230448668046808062606644862260888800688422446284062620482800802666826280622044082860826686806444064686046826688460426660046402622622046022842286.00000000
## Actualizando x[2] = 13977402448833368885668440206668488840860082888068480262028680404602806244862868044446820442068486086644442664684246446820060280688806600468088262240660224008004.00000000
## Actualizando x[3] = 62285410881228825178220086404840824224666222428844682246442840622246640862886820666402286086044262444428084066284026840064662622646208288080480846444264402624808.00000000
## Error en iteración 60: Inf
## Actualizando x[1] = -682663983769229721340820282604406886824260084662806600866846282860040428644464004624026200888082260864204840046804028406644806062200840486604682082826446020024448000640440022.00000000
## Actualizando x[2] = 355485136084044619862404824406066406260826662648602848668660484228064846464006604800422886002000648886408220480442042860848004484624860080606044842424400446288080004444228808.00000000
## Actualizando x[3] = 1584095317010229536906828224048620204808408060862648264686408244002004448808604464002448404446248086866888044606628222600064066204282808808802404206004646840808028626260206024.00000000
## Error en iteración 65: Inf
## Actualizando x[1] = -17362088561035571949242800440820404062820008406406246440008408426826884028404224664440848600444060246446200242664840040886808882860846066882464244048260066484648448060826820864002684628848.00000000
## Actualizando x[2] = 9040999029632942688006680848444224466628042040880868400642264040484246064884226446242828204800600420626802840680602480046866248668440600008000220064688004842884666406888484262086668248624.00000000
## Actualizando x[3] = 40288053620755555118442828402062246042282866260886888464042446280886860622484808664888044024088006040626004048088668084064080804644280484044284288408646200884668844248480864688662686868066.00000000
## Error en iteración 70: Inf
## Actualizando x[1] = -441567339669618479502262244088046202844284000646040262408840828020480004462460062660400602084624002820228242408082686664284668280064224840860848686242206202248446626200686222600800604842048680826000606.00000000
## Actualizando x[2] = 229938343848218627380624286606226682006040260868686004646286242046440002264062420648268804802802242206868620600202428480060246244800862268644006460088420864206046084082044662206246400808448460022260286.00000000
## Actualizando x[3] = 1024639898318943207424006402444248664862046862668424488006200606462422840260204264264442866486628084660884660844286806660264886426688808400882608446626242062664486624084886206200800064888662680866240228.00000000
## Error en iteración 75: Inf
## Actualizando x[1] = -11230314531426078716024042442442426806880028484484428864426406662284828220824280200626204042426002840662068404868868286060222422448628420666444620028448268088048464400262240262606440604082648880206644686268602486866.00000000
## Actualizando x[2] = 5847986688016288947602846840608268082084668408620022264060220602008444220008626642404264240846044882202660628420466222026802668408244820288044046260088048422820262646442068464068284628402424004284684808022684028828.00000000
## Actualizando x[3] = 26059509628089223202286402442246204602408406648808266806080688682442462460846682842602248860040268864686282044228604202020266404868440042244262606806400804462680688044006484662466046424804468424606424026684440226262.00000000
## Error en iteración 80: Inf
## Actualizando x[1] = -285618869749567478144026662084448486664280642882420244640662202260068802220064886660640446420068888206428084004028842028626404822404068046000046648446002224628046206046884684266082642468626042806264842426260082406442088086682608.00000000
## Actualizando x[2] = 148730949918428242138642224626422022248462026026424868064800828004604082686266082064060604644668062424884200802824622242024042824084488028486044066000408224406402662440660428882464800460226646826202822600246484484468686460480262.00000000
## Actualizando x[3] = 662767517808573380742420488864608222860008242042080200884886644482200884462868424080088024062662604488424008044426886664024008004260448662648082420844884268404844062484864620284246484866840008444660824224406880884068868660804600.00000000
## Error en iteración 85: Inf
## Actualizando x[1] = -7264100976756987227460080248266800424624404000204244204268024662228862002060684262608406828088828648886204224808480024648062088826260622000602420262248040000882240802846428080264086442464462204220046260266200606624606024600028428206068680420.00000000
## Actualizando x[2] = 3782651473706019053226448062880066844886644022862668060424862022868826802420446220064066488646600020804864260068260468268644022664802828462468682842084606682024622822400802842002862622446444264260462860682468028682462884680688602600228062862.00000000
## Actualizando x[3] = 16856064789057421623046042804206080866608240086880408820682688640004460000268660008040802068004042668460064862462428804888028666862802082084264646404846288668286600602422080268802608628044820660622086886828824444206222044842820268484208208408.00000000
## Error en iteración 90: Inf
## Actualizando x[1] = -184746767770590352400486404660286200826846820884622468468064266666868408626448040862246622840402462820046886088248084422686602002442040842246246866222646440606800844468228864484066060244206240864862420626022680444424080884028800244266060266288482686286482.00000000
## Actualizando x[2] = 96203595683197225824802484602622620886204068480284022044026840440860824046004448000820628408842868066840660082408248420244000848084602880868222222800628660624404206620460080000268868624040220864020648048888482420022240008088600084000882262264408888840888.00000000
## Actualizando x[3] = 428697714565676188928820626046844848660864068642624466648648004882026848824202468024464080684864088464686604648688662462028420046282806400820440820628046248086620024802664808222402228064624880860862006024244648488200246688202648260002068848844046484640620.00000000
## Error en iteración 95: Inf
## Actualizando x[1] = -4698636253941248135820480208228024226466884824482068860020842246640644440280606800446208606642660286664002020862404288802404062666244406626062480060822804884682648804682842826866426022284842842806484806802808460082680804862848622828428402604602046428088644280682804044.00000000
## Actualizando x[2] = 2446731317096059084222646008280664426000226424600086422420060620062000684604026686466040864882080088848284224860608668226080884082626006084242466006400288648480888422486468440042620888442880460288444882664868684204880244446666800842442464686068008064086068646486626802.00000000
## Actualizando x[3] = 10903003326917727562804442648624824802824644864844426008224220422400066688682886226428822242046806842844066206022884228220642004868682864480268264880062482864862602840682400466242268226822808682664226628424282264044820406262866206828824828286448824826488608044000662482.00000000
## Error en iteración 100: Inf
## Actualizando x[1] = -119499696331713066538624464604026868402606886422048868688444820484606448248082684284222460880044402480802606606604226802222208220262866246464088606482260226646886426288406660064800240486628662648084640062226688628244208024620286064260646042086402864886802286280824228064802020468440.00000000
## Actualizando x[2] = 62227342913173588868420062040806080062020640846066028824482602442644406488482406246040482048666284228242286280826006228002222268824422806860848428244040668608488802220642824240624808088828028006426022462204066666024086284220448802488802208240064620648262264868040046080420886086666.00000000
## Actualizando x[3] = 277294414007349354924288620866460842860042822604840248628640488268686280042240604046008028066046808262024808226486664448026480460488002204822460262444422288440402660264284464004882800248648004268222022282262280806202088480648466248080266086084404882006426480008046644220682886404224.00000000
## Error en iteración 105: Inf
## Actualizando x[1] = -3039217477495373590628040404006282080400020644828642402448484044088084246646204880822820040884446806648668004820086022026080400422408208044280246864440462688068800286602642240860640820204224662020000286608082622208448648444486824842222264028060022804086206862840806046880824866828244022448208426.00000000
## Actualizando x[2] = 1582618483270784297024062460862640684224826286460048826882828808206460888286828622620866868084408608448624248028408200440244464822428080680682442080400286886082046402864886626626200006622068862600620628028866048222080208064284484688206844006208084048826082644860424820602028646886868422686644428.00000000
## Actualizando x[3] = 7052386368611392754026622866262826608008644042822888006688044884208282808420642000406602800886684264206464860440884428066442800664802840082622246428868846484484840002468626486420060002008208464884686662426448448222086400068260668646662844648804286886202646800404866206886826488400226048682426462.00000000
## Error en iteración 110: Inf
## Actualizando x[1] = -77295952701614110208084488220826684244626048284446666426864826682404480826264600806020024404662628400604486448848400628648088824804460202224426644442086806048864280820442460266082448846246402024088882668462688002862006828886824484200448206666426466062246662608646228264062844802064628200446004404406248288646.00000000
## Actualizando x[2] = 40250493534411780282268088842488068802806822804208064068026800842048026002844046248048824688002422080842682404604886068626428088684208422888608082622046644482680860868804084842200028284080248802006066200228008484462886688266626844066404606044888642828086060840040422842240404460884884064884622444600640204024.00000000
## Actualizando x[3] = Inf
## Error en iteración 115: Inf
## Error en iteración 116: NA detectado
## 
## Resultado final x:
## [1] -Inf  NaN  NaN
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]  NaN
## [2,]  NaN
## [3,]  NaN

7.6.7

A <- matrix(c(1,1,-1,
              6,2,2,
              -3,4,1),3,byrow=TRUE)
b <- c(-3,2,1)
cat("\n=== Ejercicio 7.6.7 (iteración de 5 en 5) ===\n")
## 
## === Ejercicio 7.6.7 (iteración de 5 en 5) ===
res <- gauss_seidel(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = -658903.00000000
## Actualizando x[2] = 2521690.00000000
## Actualizando x[3] = -12063468.00000000
## Error en iteración 5: 11784257.901350427419
## Actualizando x[1] = -3501634558261.00000000
## Actualizando x[2] = 13401125735272.00000000
## Actualizando x[3] = -64109406615870.00000000
## Error en iteración 10: 62625576704483.695312500000
## Actualizando x[1] = -18608883601776664576.00000000
## Actualizando x[2] = 71218165342852300800.00000000
## Actualizando x[3] = -340699312176739188746.00000000
## Error en iteración 15: 332813732557722877962.000000000000
## Actualizando x[1] = -98893971698883894018666884.00000000
## Actualizando x[2] = 378477687247720872768204246.00000000
## Actualizando x[3] = -1810592664087535241866440602.00000000
## Error en iteración 20: 1768685997123492200320668086.000000000000
## Actualizando x[1] = -525556387350712073760280404868884.00000000
## Actualizando x[2] = 2011359869420733705286062428826666.00000000
## Actualizando x[3] = -9622108639735071330464062268022420.00000000
## Error en iteración 25: 9399402279406129078660828468882842.000000000000
## Actualizando x[1] = -2792986382690189594082684046860842466206.00000000
## Actualizando x[2] = 10689054231269092163460842604824262486200.00000000
## Actualizando x[3] = -51135176073146937432642684264288448008828.00000000
## Error en iteración 30: 49951638308773525280020864086888802020488.000000000000
## Actualizando x[1] = -14842884839086255928026248888862844860022240466.00000000
## Actualizando x[2] = 56805289841999803938480880088226400248640406802.00000000
## Actualizando x[3] = -271749813885257963220804842686662048468260004280.00000000
## Error en iteración 35: 265460089435408096922068246440282282482484606084.000000000000
## Actualizando x[1] = -78880166302198028114806642066644662686266800080068444.00000000
## Actualizando x[2] = 301882737632110350826420044460684442284888228264480000.00000000
## Actualizando x[3] = -1444171449435035445122264426026228602282640080064884260.00000000
## Error en iteración 40: 1410745702622483920820686648282044668440604822406862024.000000000000
## Actualizando x[1] = -419196180750362561204664628004860886684288644626224268628888.00000000
## Actualizando x[2] = 1604308111687108499142408248488860206640468022424602622284202.00000000
## Actualizando x[3] = -7674820988999522036886822660462268608668000424664262006480628.00000000
## Error en iteración 45: 7497185138830684027280022044222640262682648200464464606602006.000000000000
## Actualizando x[1] = -2227751869620411508062860666646000686468422426804260246822868828246.00000000
## Actualizando x[2] = 8525841978952850844060664884684608624062644486060664600024466420408.00000000
## Actualizando x[3] = -40786623524672635666840644428684468680046008802226024882484222222884.00000000
## Error en iteración 50: 39842605865406553204408424826226026486084682400428682424480246802460.000000000000
## Actualizando x[1] = -11839035326404136963062804060406448408828682006842888848480822024482066042.00000000
## Actualizando x[2] = 45309240114502080336062880404844842840822806422648824660600468820228466464.00000000
## Actualizando x[3] = -216754066437220740080224648082406000404206846824266248062008802260482862042.00000000
## Error en iteración 55: 211737233741798116042822048664628604446668624462208880686820282664046864882.000000000000
## Actualizando x[1] = -62916682675134553876262468482444002842822068882222822426040424480064064040400622.00000000
## Actualizando x[2] = 240788797730654963920808226806280660246268668404884604888800406888844822620688800.00000000
## Actualizando x[3] = -1151905238948023517382426226024400248480048204006620246044464220642644020400662686.00000000
## Error en iteración 60: 1125244074247536523924448248464822648862046460244646868866280222066480084264428882.000000000000
## Actualizando x[1] = -334360769244016910924824624006048626282248086684266404026086868820240880062646822046200.00000000
## Actualizando x[2] = 1279634020920534959044046406800824282488444008628684080640048646440062280826080648666282.00000000
## Actualizando x[3] = -6121618391414190790064886608826602600428226466024820402602002408686884224628888244264620.00000000
## Error en iteración 65: 5979931844076256739208024824882840462084040622248286260404628826608666604068222624666000.000000000000
## Actualizando x[1] = -1776907479161076267306864400088888060846268468408480682600604044288626626442406040044204044484.00000000
## Actualizando x[2] = 6800412822065389801002628604000682404666226206266208660208042640822868802200486640204600460842.00000000
## Actualizando x[3] = -32532373725744789860402208408826280442886822082680226828260464244062424226408666062420620626266.00000000
## Error en iteración 70: 31779402956385339122204462862606444682000268022220288628460440286266060864824008644428648266606.000000000000
## Actualizando x[1] = -9443094046701082748222082466062246464202482028224042462868846840246882260608884680826222442866664682.00000000
## Actualizando x[2] = 36139719477951578522608046426626462406684460248606688026284826004468204402648844668480062260028002220.00000000
## Actualizando x[3] = -172888160051909570196208484046400024802244020606484826868606606204248288644220804600482008008662066640.00000000
## Error en iteración 75: 168886615867495900278280484224666084804400084464806440404864206228286002242808284260844204402080286446.000000000000
## Actualizando x[1] = -50183831302765318380628684228042084248424882668086084006446440026448086606244888464288024868242488808828462.00000000
## Actualizando x[2] = 192058829091548719764060006242442844486260628264622420608428208624406048084002008480620226880042426026068822.00000000
## Actualizando x[3] = -918786810274490850482482284088248446288444842208468840402884644242288822022668808688248468442082800480288222.00000000
## Error en iteración 80: 897521235950222515520224602266044608424002262426040004424686822848040400026204082822400624808408446484480242.000000000000
## Actualizando x[1] = -266694042415495197628846442200806640082860868640240402842002844622006266220060046480406620422022642480842268044268.00000000
## Actualizando x[2] = 1020666301920821315624006444864844062886064628626246682624064664264408620288660848840684220428424288666086284066464.00000000
## Actualizando x[3] = -4882747334929770855224288286000646608008626826266006682002482008842440280468088060080288040880266608220026826208600.00000000
## Error en iteración 85: 4769734800143218022802600440686204060808244082400820048262882424040044480824680246444428600004800088660846446004048.000000000000
## Actualizando x[1] = -1417303350770642786984422006620062260604080826608224442648228628862064848220600880826286220406802862288006046006244620408.00000000
## Actualizando x[2] = 5424169796329174294488448680400808262862288802846266204004800604288660260268464202228446068422202026820066048284624208442.00000000
## Actualizando x[3] = -25948589237628626970264446206482408068644840260000620428882202202866800264864602886440048646484802680842260064462688422442.00000000
## Error en iteración 90: 25348001977480817046444842282264440826684848624864228422024664240802820084026224428648468604684242064622422008666046646464.000000000000
## Actualizando x[1] = -7532034723805968864066282642628228806640862424268286886668840420064484640668086440682440082620220664264220460282840080264086668.00000000
## Actualizando x[2] = 28825893364011606510484264268408822444208224008068460206824228644480406062468664260066640486068004682426246028684420288620008260.00000000
## Actualizando x[3] = -137899677627464337450422824266068264660486844404466628440408244886602882868662208628646444864600808080226442246846206480802480402.00000000
## Error en iteración 95: 134707951526168448960026628464268228628062008848800666844888846468864426448026008824260206840608064828866200466880040222044262202.000000000000
## Actualizando x[1] = -40027808478524874786802406848422484862604680462042000844800882640046882268262608440684822442406622480248242806606282004642866420486844.00000000
## Actualizando x[2] = 153190655793206266960622068066008244648460648066224220442680226486226264662022448682020266020642446660684022428224886684088208428884048.00000000
## Actualizando x[3] = -732846048608399752724022088468200286888624688640800448446280862840008628402808080000226260280486682442260662802824886066088848464644880.00000000
## Error en iteración 100: 715884124535640871686084286664624242486604424082600400042602406400666402226426640842460266062648420802228028440428048448664004600200086.000000000000
## Actualizando x[1] = -212721463767211073066468804882466442448042206244044868000226242688084042424448084640682046664682260008662068284806824846262240606846402686268.00000000
## Actualizando x[2] = 814107536096383961448482840840024480224600066222442228688040826804666220648624002264620842206828046080866228200686864248088246268480866244426.00000000
## Actualizando x[3] = -3894594535687169318826024080226028642002826486268422062648480206866440260688884008684666622828460860208400280424842426424422820208264884448262.00000000
## Error en iteración 105: 3804453070185720229646480442406242602646080622440048624442828460682204026460024626826886668286200006048088440448640282222442006082680424808482.000000000000
## Actualizando x[1] = -1130474609209294971626464808008244684800680884006000628488244284880686068008088824408680042884862600460806668882086644224882888822882468600482866668.00000000
## Actualizando x[2] = 4326445871630755426022462840080448824240846264888260420444800248644626662208024242648462660406006664066840264022284228628066666606488404466646228688.00000000
## Actualizando x[3] = -20697207314150907152066028684848680028026880248642842804628860624866608608080288040202600664246648600084606826460242202222420286802068000680628048264.00000000
## Error en iteración 110: 20218164738090879972260846480440640060282842660282866024604222242626820000402042880666442040060222026888848404604226226048048208428440802820820800846.000000000000
## Actualizando x[1] = -6007728695706232773280004284804024848804064804880482642864260264600866466028808208402682448240022086202464002064008446068008866604066860240468202004842662.00000000
## Actualizando x[2] = 22992213006531755416062280444262802224480420200480648682826220000608200204448068868680026086824440268062062624604200842624662222062006688046268040062644802.00000000
## Actualizando x[3] = -109992038113245727424022420204602082622042200020064466064020886860068826606826820828886402248640484288846882006660600202066828428400066648262682604002086884.00000000
## Error en iteración 115: Inf
## Actualizando x[1] = -31927124932471559784666862066204628222848262008662200240404864404866264862240428802044220828022400208428424468040608822222662480202862062886666420200420860088244.00000000
## Actualizando x[2] = 122188483254609307706004046648242808466808002440826206820042804848048628008420402240888480048400048400044080224428284426428640642648448286606424286848646462262262.00000000
## Actualizando x[3] = -584535307815851891444080828680062062602460062684086068406484068606800828202282264082404040040606228288266626666020648640268604048428468802860424848226442640062084.00000000
## Error en iteración 120: Inf
## Actualizando x[1] = -169671660969340605482466628042246806082042884064440408424860404264086886682882824284268226464428064284822864240288424440020288486068864280828464646860682084022804626820.00000000
## Actualizando x[2] = 649351388481853874384426026800004042660604666286006444280224400288602822262288604608600668264600642826204866262462682426848048466804066608080864644688608048466640264686.00000000
## Actualizando x[3] = -3106420536835437575464846242828686040222602426604808824006440420660880888088080048026824686082020068886868646020024420220682046808840882244828282844800048262620446680064.00000000
## Error en iteración 125: Inf
## Actualizando x[1] = -901693234106885673206262286404002222020082862860280280486400628608482602684886668888448080464682286626822064248488884282400428884824808406080266426200448466820826866808222826.00000000
## Actualizando x[2] = 3450875356597123634446882200862826688008000804008202662464082406888460060224666624602060486026004646000840482044264664442642288220466684082444068600062286648240028462266600646.00000000
## Actualizando x[3] = -16508581128709150349828280862064440686820288024420808800880048484482888046464264004644282244226686848026802404688204866844020024460820242268466884428624200882868680688040200020.00000000
## Error en iteración 130: Inf
## Actualizando x[1] = -4791906225171284920420462264426266008624022848806448220860800464424280666444448626822604826202484466064262468044884420820002662626666822264680006822242264042882062426206626608224844.00000000
## Actualizando x[2] = 18339131844486862199444260482420068202408688426608846668440006888226202666046488488660606062666666622460262060028640086208460282648864486848804606602400268246888640682466666848628206.00000000
## Actualizando x[3] = -87732246053461307240422686060422684242464248246488460084842204808688248446488280220006426040288808488200048426084242482286686046004666264440222466442462842622664828000608428600862840.00000000
## Error en iteración 135: Inf
## Actualizando x[1] = -25465828512708329438862688066682488080420242882268008286222860048226806220480026062202842060840200228480648428226006086602822886828226206280484248022662266624406426226284064468006846446004.00000000
## Actualizando x[2] = 97460418605532569920040406648808806420226044002064602682864208468468488402444486060446840862868886082826622882426804408426062828846864828288068260022402804088884860426606284200246662002042.00000000
## Actualizando x[3] = -466239159960255287326608882406004082422440804828080066020442408886600646022488888088666424460066844206226846664486000462884622624002420226806480604646228484828820602666622640886646062644260.00000000
## Error en iteración 140: Inf
## Actualizando x[1] = -135334122031047844162006826222426882022604628466440824046268226080866606404480466222824600620204862662408684802082428642004066284288640248826288264044602244266626820688468480822408628284080022480.00000000
## Actualizando x[2] = 517937995937419596080064422202068482464000468462680886828262080688886880260602804420884200644228862884840840208840280648026462064060826408660286024208026880242666064608400282082440242802660424028.00000000
## Actualizando x[3] = -2477754349842821819226022826402268280680224464866402286466008402426406446440626088808646222480620608662686682200860402026802886000080802828884806640804488246826268862640402224862886044860620422026.00000000
## Error en iteración 145: Inf
## Actualizando x[1] = -719211808748911030844026608444688004020282668202646002440228482484064426462848448004822684628282440020844242684666808448220448886860026860428026642264802686026888824424462044644628226006462622662680066.00000000
## Actualizando x[2] = 2752499645229740926082240240688484048822448622604846222086826806420668888644620004224066644482024864864862646028204004680486224066600606448644246622064280408024002864280668408246888688488028666064420662.00000000
## Actualizando x[3] = -13167634007165696253044408204846608800688640604286042024028420864600082008008220262424248262664002666240024488804406240444268606426206868286602608040202660646464240486062804448260288404448622048440040244.00000000
## Error en iteración 150: Inf
## Actualizando x[1] = -3822137522163191314882022662428844662028020402460486422266402262444620820002828822202844228006684020620688862442828066406266486024468046240606228000004426444666682002228802446028426808046608242666842224880042.00000000
## Actualizando x[2] = 14627724469755369974440408862402082204240648648600084244822202862008668840468882466248042026804664200684680640226688608844884288262664808200040440628402444844426626806804044622822224042686282442422684464622248.00000000
## Actualizando x[3] = -69977310445511051560466266480668648400804622224640844804680866226848082004226848624044420868008008804484282662682464624606848006226624826080806262246480460802802460866424046640686848008022042442440806682442200.00000000
## Error en iteración 155: Inf
## Actualizando x[1] = -20312145963982546994220420426286060226008844664448402006024606644866660224246626000648888200888826246824684888464224426888408482868620286420668442846044400208206666620488268684868042444066042686604248804482888648046.00000000
## Actualizando x[2] = 77736730514717547754086808228624204464886606602042806624088082020624222466668080244646284480420440264686222006808828244680468884608262480026202060842248824404220688464680224222666622860842428206028260660688846406400.00000000
## Actualizando x[3] = -371883359950817810442004000404822686642224202042204286844808024008046002686624846222246420686464486444444204684862066064240800406684486206220260606628666666206448066682040464466000428082826864468666628866400828828066.00000000
## Error en iteración 160: Inf
## Actualizando x[1] = -107945690407451708840444466600686606024282806208226488866006440860220288820640264046486602828202846066864428424004620062064404604266846288242864826242264860688628066840680660442082426228668020264860806680828428260824644026.00000000
## Actualizando x[2] = 413119571920599603606000060480006464866846488464666460488800420002804404488202064864000222848220228424802280488806804064202044202844840008806622242666666628266088608860200242444082066048840064886048000600446428626844202006.00000000
## Actualizando x[3] = -1976315358904753721640046226242882244084222242020040000868004664404462642088064844480288800246686268842666242648048684026660262422206686668204408602686884224268848866680620464044020686862628664000462802000228484666222662268.00000000
## Error en iteración 165: Inf
## Actualizando x[1] = -573660316256253446822408848248464606266482062282286684448804848420484268648482008008242440426060444662862042828680044684804280260440666648882648602462406884400088824268642604866828402088668682062628680002886202424828488822842260.00000000
## Actualizando x[2] = 2195458692098552563246666828622224648280448424004420062402206400484648662282046266442288842860608042022220026628860062822084628808682620680442248624200222864608802024848644084220842668084448888868462200282206422868882488680844642.00000000
## Actualizando x[3] = -10502815717162969754244826408206264004824208806824022248026480666660460420028264062846002028002804266608428208048648226082622688600800684048226864064440020822608482422608682686806422242620886042240448248248084086260462282226428088.00000000
## Error en iteración 170: Inf
## Actualizando x[1] = -3048627112440120947606226086646628468602646286442886208662400086880048482202804046664844246000882668804422208220006666406644824840446826604862468688662820684668248088044684242422822244008460860068242206840840402222620642420864840882608.00000000
## Actualizando x[2] = 11667418336784794486460464006088466886028440626604262684082266820622800200800864240868464008204446802082664046086048428088466400662644064002286020886480022220808040060062644402282422682282220424824444280222464882284260066262426622062660.00000000
## Actualizando x[3] = -55815554684459535844488844062488822286822606020082802482084860404682202886482468620646280648666860246206002644284288262080084086680046846624446642608604440624486686866880848864808648624026800042266406228602264284424646668868660442068648.00000000
## Error en iteración 175: Inf
## Actualizando x[1] = -16201447106118652645426204842246462226800608048424200820202648286428228864006666802684204848624882682842084602604426406684806664644266484828208862240806448624028622466646888046880206688044222646800082802020088206480220240886288248688266828044.00000000
## Actualizando x[2] = 62004651299279051932024866244404626220842606488284842864606264840886488086422686864420224468484862660208220246048226046822242200468486000208800222202480642880004004882642020486004860620862066022640426468088802442840266488442446604068282680826.00000000
## Actualizando x[3] = -296622946515472141902242248282828464660602804460060488044460066680408040004444204288046644862644644404460082804868462602288828420826088228404480202402620464840266286828404262626686686060086820428864842466068466888842644402482266642248086646620.00000000
## Error en iteración 180: Inf
## Actualizando x[1] = -86100030817565611768664264402608862280428640004482646684402228600260206480400208400682866484860426622800628022200606828248008486806608422062006442880482802828244026442444482424424408280466464208866282280848848226420222642644884002204488460008428800.00000000
## Actualizando x[2] = 329513922597948319724028686808204040262262004606284060642264688240826820642848846060662662482624228802020082064206486482442866888208606406204266020088048428060488424620860680002666800824200000602224464024848246842824066820008246622040668206688666284.00000000
## Actualizando x[3] = -1576355782844490201126428680880086006226640220680840422266844668226686240208804224264424028460686626028884244420622064884280406860048424488084462460420264646860024444028480084048204604080866484206244028662824628600820880008662886448088044002402068662.00000000
## Error en iteración 185: Inf
## Actualizando x[1] = -457565009979020227488884626204204680404260480486028848460440066646888668488486002624420082622628006460246420624000460664222206640608800284200882668262240486284684646202086226408828284006224662244684228622466482686648048828004882826288084280068880004208026.00000000
## Actualizando x[2] = 1751149678462093143848064242042044048882020264442286846400808828064066622048682806604206026226404288282682202886246028626064204228242846420448242040646040862846888044062042220040846228462204822206000048026268482688468020882222680026860880248224602486246228.00000000
## Actualizando x[3] = -8377293743785432320000882444840088660244042800846860668442460484004646428668000204682888208466240206608600288688482066446022622262428886648442440222806640086424846444604006424440828444800868022842082002282024684024642048204440082404020400284602204866268664.00000000
## Error en iteración 190: Inf
## Actualizando x[1] = -2431656950282847998424420620482682464640288866224028626220240488488620442406244804066646206808622268602226846880886004226842648482044040444886848266826680488048884842088828468404804682668082644446844000844280220228240628200620666842864488008064064002066426442484.00000000
## Actualizando x[2] = 9306208284617667501846866286242404664044604220686266246282068646288806628622688286206004826026002842608064868822664684222208466202882862264062608420284684260686062008842044660622644428244402662688640886824664648688484240640606462444046800280048820402668686486064.00000000
## Actualizando x[3] = -44519803989319216624840408282844220860022684268846684464668242686468408462008408264464080664408446840466482040464286420268806248640660606082026060400468286066482042464264466428840842600044486626882046246424668446886886264840228608084486642268462684260442408868604.00000000
## Error en iteración 195: Inf
## Actualizando x[1] = -12922656660591239680222800866822840448606820684268068068868246628408080684866042226422046602026648088488648282862864880840802044820660048860660200028882228862048480268846400426880260088824682428206044682268602224008006644666246086662622688224442840484480248804482686824.00000000
## Actualizando x[2] = 49456373548117156898400266206006408064646648466466822260842424864446042246088864002884208864862800264260808884680646820626262208802800462024064246066040686660640860428468844480282020048028266060424048020000640682282062066802442442680048222826800808248402866624286862246.00000000
## Actualizando x[3] = -236593464174242339264284428664800448664848402882806660440040866860488446462048822064086824800864266462688026802008668004062680000800408684820222684840226604842828866400680462228880406446862228286288408082068642240426026246680462628864282042800828460688622820486282402660.00000000
## Error en iteración 200: Inf
## 
## Resultado final x:
## [1] -1.292266e+268  4.945637e+268 -2.365935e+269
## 
## Chequeando residuo (Ax-b):
##                [,1]
## [1,]  2.731272e+269
## [2,] -4.518101e+269
## [3,]  -1.000000e+00

7.6.8

A <- matrix(c(2,1,-1,
              5,2,2,
              3,1,1),3,byrow=TRUE)
b <- c(1,-4,5)
cat("\n=== Ejercicio 7.6.8 ===\n")
## 
## === Ejercicio 7.6.8 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 0.50000000
## Actualizando x[2] = -3.25000000
## Actualizando x[3] = 6.75000000
## Error en iteración 1: 7.508328708841
## Actualizando x[1] = 5.50000000
## Actualizando x[2] = -22.50000000
## Actualizando x[3] = 11.00000000
## Error en iteración 2: 20.337772739413
## Actualizando x[1] = 17.25000000
## Actualizando x[2] = -56.12500000
## Actualizando x[3] = 9.37500000
## Error en iteración 3: 35.655907645157
## Actualizando x[1] = 33.25000000
## Actualizando x[2] = -94.50000000
## Actualizando x[3] = -0.25000000
## Error en iteración 4: 42.676471855110
## Actualizando x[1] = 47.62500000
## Actualizando x[2] = -120.81250000
## Actualizando x[3] = -17.06250000
## Error en iteración 5: 34.375113636176
## Actualizando x[1] = 52.37500000
## Actualizando x[2] = -115.87500000
## Actualizando x[3] = -36.25000000
## Error en iteración 6: 20.374041388492
## Actualizando x[1] = 40.31250000
## Actualizando x[2] = -66.53125000
## Actualizando x[3] = -49.40625000
## Error en iteración 7: 52.472816623229
## Actualizando x[1] = 9.06250000
## Actualizando x[2] = 24.75000000
## Actualizando x[3] = -46.93750000
## Error en iteración 8: 96.513853037401
## Actualizando x[1] = -35.34375000
## Actualizando x[2] = 133.29687500
## Actualizando x[3] = -22.26562500
## Error en iteración 9: 119.845903256406
## Actualizando x[1] = -77.28125000
## Actualizando x[2] = 213.46875000
## Actualizando x[3] = 23.37500000
## Error en iteración 10: 101.337801918417
## Actualizando x[1] = -94.54687500
## Actualizando x[2] = 210.99218750
## Actualizando x[3] = 77.64843750
## Error en iteración 11: 57.007378351608
## Actualizando x[1] = -66.17187500
## Actualizando x[2] = 85.78125000
## Actualizando x[3] = 117.73437500
## Error en iteración 12: 134.498334115642
## Actualizando x[1] = 16.47656250
## Actualizando x[2] = -160.92578125
## Actualizando x[3] = 116.49609375
## Error en iteración 13: 260.185812122479
## Actualizando x[1] = 139.21093750
## Actualizando x[2] = -466.52343750
## Actualizando x[3] = 53.89062500
## Error en iteración 14: 335.220970450151
## Actualizando x[1] = 260.70703125
## Actualizando x[2] = -707.65820312
## Actualizando x[3] = -69.46289062
## Error en iteración 15: 296.855799684931
## Actualizando x[1] = 319.59765625
## Actualizando x[2] = -731.53125000
## Actualizando x[3] = -222.26171875
## Error en iteración 16: 165.485679006855
## Actualizando x[1] = 255.13476562
## Actualizando x[2] = -417.57519531
## Actualizando x[3] = -342.82910156
## Error en iteración 17: 342.433004164212
## Actualizando x[1] = 37.87304688
## Actualizando x[2] = 246.14648438
## Actualizando x[3] = -354.76562500
## Error en iteración 18: 698.478062012813
## Actualizando x[1] = -299.95605469
## Actualizando x[2] = 1102.65576172
## Actualizando x[3] = -197.78759766
## Error en iteración 19: 934.012176102204
## Actualizando x[1] = -649.72167969
## Actualizando x[2] = 1820.09179688
## Actualizando x[3] = 134.07324219
## Error en iteración 20: 864.396942378997
## Actualizando x[1] = -842.50927734
## Actualizando x[2] = 1970.19995117
## Actualizando x[3] = 562.32788086
## Error en iteración 21: 493.053294624892
## Actualizando x[1] = -703.43603516
## Actualizando x[2] = 1194.26220703
## Actualizando x[3] = 921.04589844
## Error en iteración 22: 866.082770645950
## Actualizando x[1] = -136.10815430
## Actualizando x[2] = -582.77551270
## Actualizando x[3] = 996.09997559
## Error en iteración 23: 1866.911110960555
## Actualizando x[1] = 789.93774414
## Actualizando x[2] = -2972.94433594
## Actualizando x[3] = 608.13110352
## Error en iteración 24: 2592.486809090332
## Actualizando x[1] = 1791.03771973
## Actualizando x[2] = -5087.72540283
## Actualizando x[3] = -280.38775635
## Error en iteración 25: 2502.791618642368
## Actualizando x[1] = 2404.16882324
## Actualizando x[2] = -5732.03430176
## Actualizando x[3] = -1475.47216797
## Error en iteración 26: 1489.728316919893
## Actualizando x[1] = 2128.78106689
## Actualizando x[2] = -3848.48049927
## Actualizando x[3] = -2532.86270142
## Error en iteración 27: 2177.541752400057
## Actualizando x[1] = 658.30889893
## Actualizando x[2] = 885.09045410
## Actualizando x[3] = -2855.01715088
## Error en iteración 28: 4967.168796876093
## Actualizando x[1] = -1869.55380249
## Actualizando x[2] = 7526.90165710
## Actualizando x[3] = -1913.24024963
## Error en iteración 29: 7168.729986912909
## Actualizando x[1] = -4719.57095337
## Actualizando x[2] = 13710.16763306
## Actualizando x[3] = 453.54522705
## Error en iteración 30: 7208.123846211051
## Actualizando x[1] = -6627.81120300
## Actualizando x[2] = 16113.98278046
## Actualizando x[3] = 3774.45082855
## Error en iteración 31: 4521.959987358960
## Actualizando x[1] = -6169.26597595
## Actualizando x[2] = 11646.71411133
## Actualizando x[3] = 6866.08381653
## Error en iteración 32: 5452.059025704812
## Actualizando x[1] = -2389.81514740
## Actualizando x[2] = -893.54594803
## Actualizando x[3] = 8067.99139023
## Error en iteración 33: 13152.450446113005
## Actualizando x[1] = 4481.26866913
## Actualizando x[2] = -19273.16306305
## Actualizando x[3] = 5834.35705566
## Error en iteración 34: 19748.702247212732
## Actualizando x[1] = 12554.26005936
## Actualizando x[2] = -37222.00720406
## Actualizando x[3] = -435.77297401
## Error en iteración 35: 20655.476914705123
## Actualizando x[1] = 18393.61711502
## Actualizando x[2] = -45550.26981354
## Actualizando x[3] = -9625.58153152
## Error en iteración 36: 13708.049833572877
## Actualizando x[1] = 17962.84414101
## Actualizando x[2] = -35283.52882099
## Actualizando x[3] = -18600.00360203
## Error en iteración 37: 13643.012404256722
## Actualizando x[1] = 8342.26260948
## Actualizando x[2] = -2257.65292168
## Actualizando x[3] = -22764.13490677
## Error en iteración 38: 34649.733872640121
## Actualizando x[1] = -10252.74099255
## Actualizando x[2] = 48393.98738813
## Actualizando x[3] = -17630.76441050
## Error en iteración 39: 54200.685583172017
## Actualizando x[1] = -33011.87589931
## Actualizando x[2] = 100158.45415878
## Actualizando x[3] = -1117.82646084
## Error en iteración 40: 58908.533859563664
## Actualizando x[1] = -50637.64030981
## Actualizando x[2] = 127709.92723536
## Actualizando x[3] = 24207.99369407
## Error en iteración 41: 41366.029616855034
## Actualizando x[1] = -51750.46677065
## Actualizando x[2] = 105166.17323256
## Actualizando x[3] = 50090.22707939
## Error en iteración 42: 34341.654477959230
## Actualizando x[1] = -27537.47307658
## Actualizando x[2] = 18751.45561206
## Actualizando x[3] = 63865.96361768
## Error en iteración 43: 90793.961265222373
## Actualizando x[1] = 22557.75400281
## Actualizando x[2] = -120262.34862471
## Actualizando x[3] = 52594.08661628
## Error en iteración 44: 148193.875567276787
## Actualizando x[1] = 86428.71762049
## Actualizando x[2] = -268667.88066751
## Actualizando x[3] = 9386.72780603
## Error en iteración 45: 167244.066530671291
## Actualizando x[1] = 139027.80423677
## Actualizando x[2] = -356958.23839796
## Actualizando x[3] = -60120.17431235
## Error en iteración 46: 124068.773763312158
## Actualizando x[1] = 148419.53204280
## Actualizando x[2] = -310930.65579465
## Actualizando x[3] = -134322.94033375
## Error en iteración 47: 87822.510762978331
## Actualizando x[1] = 88304.35773045
## Actualizando x[2] = -86439.95399237
## Actualizando x[3] = -178468.11919898
## Error en iteración 48: 236555.926147135498
## Actualizando x[1] = -46013.58260331
## Actualizando x[2] = 293500.07570724
## Actualizando x[3] = -155454.32789733
## Error en iteración 49: 403640.148961568775
## Actualizando x[1] = -224476.70180228
## Actualizando x[2] = 716644.08240303
## Actualizando x[3] = -43208.97699618
## Error en iteración 50: 472756.759989444865
## Actualizando x[1] = -379926.02969961
## Actualizando x[2] = 993022.05124521
## Actualizando x[3] = 146761.03785362
## Error en iteración 51: 369645.616431588598
## Actualizando x[1] = -423130.00669579
## Actualizando x[2] = 911061.97888586
## Actualizando x[3] = 358333.04120152
## Error en iteración 52: 230969.153113739594
## Actualizando x[1] = -276363.96884217
## Actualizando x[2] = 332574.88090391
## Actualizando x[3] = 496522.02562260
## Error en iteración 53: 612604.103654356790
## Actualizando x[1] = 81974.07235935
## Actualizando x[2] = -701459.20652097
## Actualizando x[3] = 455541.98944293
## Error en iteración 54: 1095131.046539192786
## Actualizando x[1] = 578501.09798195
## Actualizando x[2] = -1901796.73439780
## Actualizando x[3] = 166298.44045196
## Error en iteración 55: 1330793.409450163599
## Actualizando x[1] = 1034048.08742488
## Actualizando x[2] = -2751420.65901415
## Actualizando x[3] = -350718.60326048
## Error en iteración 56: 1093933.497229221743
## Actualizando x[1] = 1200351.52787683
## Actualizando x[2] = -2650162.21643160
## Actualizando x[3] = -950887.36719890
## Error en iteración 57: 630961.687987287994
## Actualizando x[1] = 849637.92461635
## Actualizando x[2] = -1173209.44434197
## Actualizando x[3] = -1375699.32950708
## Error en iteración 58: 1576342.198196604848
## Actualizando x[1] = -101244.44258255
## Actualizando x[2] = 1628808.43596345
## Actualizando x[3] = -1325070.10821580
## Error en iteración 59: 2959399.397825453430
## Actualizando x[1] = -1476938.77208963
## Actualizando x[2] = 5017415.03843986
## Actualizando x[3] = -586593.72217099
## Error en iteración 60: 3731023.581717283465
## Actualizando x[1] = -2802003.88030543
## Actualizando x[2] = 7591601.42293455
## Actualizando x[3] = 814415.21798172
## Error en iteración 61: 3216373.599804072641
## Actualizando x[1] = -3388592.60247641
## Actualizando x[2] = 7657064.28820931
## Actualizando x[3] = 2508718.51921993
## Error en iteración 62: 1794167.046931487275
## Actualizando x[1] = -2574172.38449469
## Actualizando x[2] = 3926710.44201679
## Actualizando x[3] = 3795811.71146728
## Error en iteración 63: 4029321.158060022630
## Actualizando x[1] = -65448.86527476
## Actualizando x[2] = -3632191.54828038
## Actualizando x[3] = 3828543.14410465
## Error en iteración 64: 7964406.088434232399
## Actualizando x[1] = 3730367.84619252
## Actualizando x[2] = -13154464.75958594
## Actualizando x[3] = 1963366.22100840
## Error en iteración 65: 10419251.248158510774
## Actualizando x[1] = 7558915.99029717
## Actualizando x[2] = -20860658.19675132
## Actualizando x[3] = -1816084.77414019
## Error en iteración 66: 9398268.351535165682
## Actualizando x[1] = 9522287.21130556
## Actualizando x[2] = -21989635.25412371
## Actualizando x[3] = -6577221.37979298
## Error en iteración 67: 5272365.458240173757
## Actualizando x[1] = 7706207.43716537
## Actualizando x[2] = -12688299.21312044
## Actualizando x[3] = -10430318.09837566
## Error en iteración 68: 10230315.352737674490
## Actualizando x[1] = 1128991.05737239
## Actualizando x[2] = 7607838.45494469
## Actualizando x[3] = -10994806.62706186
## Error en iteración 69: 21342718.356542300433
## Actualizando x[1] = -9301322.04100328
## Actualizando x[2] = 34248109.72957005
## Actualizando x[3] = -6344138.60656022
## Error en iteración 70: 28984896.031428027898
## Actualizando x[1] = -20296123.66806513
## Actualizando x[2] = 57084445.77672304
## Actualizando x[3] = 3803930.22747235
## Error en iteración 71: 27301414.028163533658
## Actualizando x[1] = -26640257.27462535
## Actualizando x[2] = 62796710.95909102
## Actualizando x[3] = 17124065.86478502
## Error en iteración 72: 15820999.277162844315
## Actualizando x[1] = -22836322.04715300
## Actualizando x[2] = 39966737.25309747
## Actualizando x[3] = 28542233.88836152
## Error en iteración 73: 25807986.818924617022
## Actualizando x[1] = -5712251.18236797
## Actualizando x[2] = -14261607.93244159
## Actualizando x[3] = 31398366.47954551
## Error en iteración 74: 56939482.943934246898
## Actualizando x[1] = 22829987.70599355
## Actualizando x[2] = -88473337.74452938
## Actualizando x[3] = 19983379.62654874
## Error en iteración 75: 80326472.394327804446
## Actualizando x[1] = 54228359.18553906
## Actualizando x[2] = -155554279.59039637
## Actualizando x[3] = -7130792.96622080
## Error en iteración 76: 78872611.506698697805
## Actualizando x[1] = 74211743.81208779
## Actualizando x[2] = -178398568.56399867
## Actualizando x[3] = -44236657.87226471
## Error en iteración 77: 47937901.604759596288
## Actualizando x[1] = 67080955.84586698
## Actualizando x[2] = -123465733.74240273
## Actualizando x[3] = -77777128.79519820
## Error en iteración 78: 64756680.491576232016
## Actualizando x[1] = 22844302.97360227
## Actualizando x[2] = 20666369.36119254
## Actualizando x[3] = -89199273.28199933
## Error en iteración 79: 151199900.750906646252
## Actualizando x[1] = -54932820.82159594
## Actualizando x[2] = 226531323.33598918
## Actualizando x[3] = -61732855.87120137
## Error en iteración 80: 221774805.481332600117
## Actualizando x[1] = -144132089.10359526
## Actualizando x[2] = 422063076.63018954
## Actualizando x[3] = 10333195.68059623
## Error en iteración 81: 226677506.150509953499
## Actualizando x[1] = -205864939.97479665
## Actualizando x[2] = 504329152.25639540
## Actualizando x[3] = 113265672.66799456
## Error en iteración 82: 145512016.322996169329
## Actualizando x[1] = -195531739.29420042
## Actualizando x[2] = 375563673.56750649
## Actualizando x[3] = 211031549.31509477
## Error en iteración 83: 162004599.239836990833
## Actualizando x[1] = -82266061.62620586
## Actualizando x[2] = -5366397.24958012
## Actualizando x[3] = 252164587.12819770
## Error en iteración 84: 399535679.745920538902
## Actualizando x[1] = 128765492.68888891
## Actualizando x[2] = -574078320.85042000
## Actualizando x[3] = 187781847.78375328
## Error en iteración 85: 610010414.737246036530
## Actualizando x[1] = 380930084.81708664
## Actualizando x[2] = -1140107061.82646990
## Actualizando x[3] = -2683187.62478995
## Error en iteración 86: 648268807.553849577904
## Actualizando x[1] = 568711937.60083997
## Actualizando x[2] = -1419096658.37731004
## Actualizando x[3] = -287039149.42520976
## Error en iteración 87: 440403828.582292854786
## Actualizando x[1] = 566028754.97605014
## Actualizando x[2] = -1128032740.01491570
## Actualizando x[3] = -570053519.91323471
## Error en iteración 88: 405983420.775038003922
## Actualizando x[1] = 278989610.55084050
## Actualizando x[2] = -127420508.46386647
## Actualizando x[3] = -709548318.18865502
## Error en iteración 89: 1050273824.822758793831
## Actualizando x[1] = -291063904.36239427
## Actualizando x[2] = 1437208077.09464073
## Actualizando x[3] = -564016359.00745797
## Error en iteración 90: 1671587021.891132593155
## Actualizando x[1] = -1000612217.55104935
## Actualizando x[2] = 3065546900.88508129
## Actualizando x[3] = -63710243.23193312
## Error en iteración 91: 1845332583.382869243622
## Actualizando x[1] = -1564628571.55850720
## Actualizando x[2] = 3975281670.12820101
## Actualizando x[3] = 718604049.54732084
## Error en iteración 92: 1325800682.849576234818
## Actualizando x[1] = -1628338809.79044008
## Actualizando x[2] = 3352242972.92877913
## Actualizando x[3] = 1532773461.44254160
## Error en iteración 93: 1027184522.824079632759
## Actualizando x[1] = -909734755.24311876
## Actualizando x[2] = 741563424.66525507
## Actualizando x[3] = 1987640846.06410122
## Error en iteración 94: 2745713719.331595897675
## Actualizando x[1] = 623038711.19942307
## Actualizando x[2] = -3545237626.06265879
## Actualizando x[3] = 1676121497.46438956
## Error en iteración 95: 4563233727.577869415283
## Actualizando x[1] = 2610679562.26352406
## Actualizando x[2] = -8202820405.12319946
## Actualizando x[3] = 370781723.33262730
## Error en iteración 96: 5229503362.896948814392
## Actualizando x[1] = 4286801064.72791338
## Actualizando x[2] = -11087784387.15241241
## Actualizando x[3] = -1772618802.03132820
## Error en iteración 97: 3965673496.489570617676
## Actualizando x[1] = 4657582793.06054211
## Actualizando x[2] = -9871338182.62002754
## Actualizando x[3] = -4101410191.56159782
## Error en iteración 98: 2653392129.809858798981
## Actualizando x[1] = 2884963996.02921486
## Actualizando x[2] = -3110999800.51143932
## Actualizando x[3] = -5543892182.57620525
## Error en iteración 99: 7136182924.687457084656
## Actualizando x[1] = -1216446190.53238297
## Actualizando x[2] = 8585007656.90716267
## Actualizando x[3] = -4935669080.31001377
## Error en iteración 100: 12409193821.701435089111
## Actualizando x[1] = -6760338368.10858822
## Actualizando x[2] = 21836514998.58148575
## Actualizando x[3] = -1555499889.25572205
## Error en iteración 101: 14756785932.688451766968
## Actualizando x[1] = -11696007443.41860390
## Actualizando x[2] = 30795518495.80223083
## Actualizando x[3] = 4292503839.45358276
## Error en iteración 102: 11782347834.586412429810
## Actualizando x[1] = -13251507327.67432404
## Actualizando x[2] = 28836264477.73222733
## Actualizando x[3] = 10918257510.29074478
## Error en iteración 103: 7082292559.888721466064
## Actualizando x[1] = -8959003483.22074127
## Actualizando x[2] = 11479251195.76110840
## Actualizando x[3] = 15397759258.90111542
## Error en iteración 104: 18432510280.506397247314
## Actualizando x[1] = 1959254032.07000351
## Actualizando x[2] = -20295894341.07612610
## Actualizando x[3] = 14418132249.86611557
## Error en iteración 105: 33612912550.599075317383
## Actualizando x[1] = 17357013295.97112274
## Actualizando x[2] = -57810665491.79393005
## Actualizando x[3] = 5739625608.88056183
## Error en iteración 106: 41470055731.303421020508
## Actualizando x[1] = 31775145550.83724594
## Actualizando x[2] = -85177489487.97366333
## Actualizando x[3] = -10147947159.53807068
## Error en iteración 107: 34774136392.274169921875
## Actualizando x[1] = 37514771164.71779633
## Actualizando x[2] = -83638980754.25642395
## Actualizando x[3] = -28905332734.89695740
## Error en iteración 108: 19676123219.118129730225
## Actualizando x[1] = 27366824010.17973328
## Actualizando x[2] = -39511727292.55237579
## Actualizando x[3] = -42588744732.98682404
## Error en iteración 109: 47301491450.420867919922
## Actualizando x[1] = -1538508719.71722412
## Actualizando x[2] = 46435016530.27988434
## Actualizando x[3] = -41819490366.12821198
## Error en iteración 110: 90680498378.948822021484
## Actualizando x[1] = -44127253447.70404816
## Actualizando x[2] = 152137623983.38833618
## Actualizando x[3] = -19755863635.27618408
## Error en iteración 111: 116076035530.207244873047
## Actualizando x[1] = -85946743808.83226013
## Actualizando x[2] = 234622723155.35684204
## Actualizando x[3] = 23217508276.13992310
## Error en iteración 112: 101977311461.475891113281
## Actualizando x[1] = -105702607439.10845947
## Actualizando x[2] = 241039010319.63122559
## Actualizando x[3] = 76068812002.69415283
## Error en iteración 113: 56786646267.841766357422
## Actualizando x[1] = -82485099157.96853638
## Actualizando x[2] = 130143935890.22717285
## Actualizando x[3] = 117311361588.67843628
## Error en iteración 114: 120572460038.933593750000
## Actualizando x[1] = -6416287150.27436829
## Actualizando x[2] = -101270643714.99252319
## Actualizando x[3] = 120519505170.81562805
## Error en iteración 115: 243617454217.398162841797
## Actualizando x[1] = 110895074443.40408325
## Actualizando x[2] = -397757191281.32580566
## Actualizando x[3] = 65071967956.11352539
## Error en iteración 116: 323636613858.726013183594
## Actualizando x[1] = 231414579619.21966553
## Actualizando x[2] = -643608417006.16271973
## Actualizando x[3] = -50635321846.49621582
## Error en iteración 117: 297247293060.329223632812
## Actualizando x[1] = 296486547580.33325195
## Actualizando x[2] = -690581047106.33691406
## Actualizando x[3] = -198878595629.66284180
## Error en iteración 118: 168573002627.380645751953
## Actualizando x[1] = 245851225738.83703613
## Actualizando x[2] = -415749468719.42968750
## Actualizando x[3] = -321804208492.08142090
## Error en iteración 119: 305298278072.824768066406
## Actualizando x[1] = 46972630114.17413330
## Actualizando x[2] = 204372633204.64608765
## Actualizando x[3] = -345290523542.16845703
## Error en iteración 120: 651656139453.165893554687
## Actualizando x[1] = -274831578372.90728760
## Actualizando x[2] = 1032369469472.43664551
## Actualizando x[3] = -207874734348.71472168
## Error en iteración 121: 898899220485.326171875000
## Actualizando x[1] = -620122101910.07568359
## Actualizando x[2] = 1758179989121.90380859
## Actualizando x[3] = 102186316613.32324219
## Error en iteración 122: 861489588678.867919921875
## Actualizando x[1] = -827996836253.79028320
## Actualizando x[2] = 1967805774019.15234375
## Actualizando x[3] = 516184734747.21875000
## Error en iteración 123: 508477693797.501037597656
## Actualizando x[1] = -725810519635.46679687
## Actualizando x[2] = 1298341564339.44824219
## Actualizando x[3] = 879089994571.95214844
## Error en iteración 124: 768325841654.794433593750
## Actualizando x[1] = -209625784883.24804687
## Actualizando x[2] = -355025532365.83203125
## Actualizando x[3] = 983902887020.57617187
## Error en iteración 125: 1735239228257.104980468750
## Actualizando x[1] = 669464209693.70410156
## Actualizando x[2] = -2657563411256.83642578
## Actualizando x[3] = 649170782180.72412109
## Error en iteración 126: 2487272700027.825683593750
## Actualizando x[1] = 1653367096719.28027344
## Actualizando x[2] = -4782588523980.92480469
## Actualizando x[3] = -177512766171.91601562
## Error en iteración 127: 2483385252014.314453125000
## Actualizando x[1] = 2302537878905.00439453
## Actualizando x[2] = -5578831931092.59472656
## Actualizando x[3] = -1328781705617.41894531
## Error en iteración 128: 1542999170040.087402343750
## Actualizando x[1] = 2125025112738.08789062
## Actualizando x[2] = -3983781076229.80078125
## Actualizando x[3] = -2391294261979.46289062
## Error en iteración 129: 1924741786364.541503906250
## Actualizando x[1] = 796243407125.66894531
## Actualizando x[2] = 400685744163.29052734
## Actualizando x[3] = -2789415965535.29736328
## Error en iteración 130: 4598664046344.368164062500
## Actualizando x[1] = -1595050854848.79394531
## Actualizando x[2] = 6777043102655.28222656
## Actualizando x[3] = -1991890538103.90039062
## Error en iteración 131: 6856549293773.552734375000
## Actualizando x[1] = -4384466820379.09130859
## Actualizando x[2] = 12953057589049.62890625
## Actualizando x[3] = 200342872092.64453125
## Error en iteración 132: 7122491396252.446289062500
## Actualizando x[1] = -6376357358477.99218750
## Actualizando x[2] = 15740550524100.33593750
## Actualizando x[3] = 3388521551338.64062500
## Error en iteración 133: 4679981631323.383789062500
## Actualizando x[1] = -6176014486380.34765625
## Actualizando x[2] = 12051514664610.22851562
## Actualizando x[3] = 6476528794535.81445312
## Error en iteración 134: 4815071294699.846679687500
## Actualizando x[1] = -2787492935036.70703125
## Actualizando x[2] = 492203543053.95312500
## Actualizando x[3] = 7870275262061.16796875
## Error en iteración 135: 12126099171810.953125000000
## Actualizando x[1] = 3689035859504.10742187
## Actualizando x[2] = -17092864910823.43750000
## Actualizando x[3] = 6025757332316.11523437
## Error en iteración 136: 18830355921947.437500000000
## Actualizando x[1] = 11559311121570.27734375
## Actualizando x[2] = -34924035136243.81250000
## Actualizando x[3] = 246101771537.98046875
## Error en iteración 137: 20329689685527.480468750000
## Actualizando x[1] = 17585068453891.39648437
## Actualizando x[2] = -44208772906268.46875000
## Actualizando x[3] = -8546432455400.71875000
## Error en iteración 138: 14135938773849.886718750000
## Actualizando x[1] = 17831170225434.37500000
## Actualizando x[2] = -36031493108187.21875000
## Actualizando x[3] = -17462017568110.90625000
## Error en iteración 139: 12100253256855.570312500000
## Actualizando x[1] = 9284737770038.65625000
## Actualizando x[2] = -5749826856987.73437500
## Actualizando x[3] = -22104386453123.23437500
## Error en iteración 140: 31805226104025.824218750000
## Actualizando x[1] = -8177279798067.25000000
## Actualizando x[2] = 42547585948289.35937500
## Actualizando x[3] = -18015746554082.60937500
## Error en iteración 141: 51519696402989.507812500000
## Actualizando x[1] = -30281666251185.48437500
## Actualizando x[2] = 93719912182044.32812500
## Actualizando x[3] = -2874913428482.87500000
## Error en iteración 142: 57762061081473.726562500000
## Actualizando x[1] = -48297412805263.10156250
## Actualizando x[2] = 123618445441638.62500000
## Actualizando x[3] = 21273792974155.68750000
## Error en iteración 143: 42445841208493.710937500000
## Actualizando x[1] = -51172326233740.96875000
## Actualizando x[2] = 106657022610194.73437500
## Actualizando x[3] = 46859956091033.17187500
## Error en iteración 144: 30831910980860.886718750000
## Actualizando x[1] = -29898533259580.28125000
## Actualizando x[2] = 27886377057915.53125000
## Actualizando x[3] = 61809222720830.31250000
## Error en iteración 145: 82951006268754.921875000000
## Actualizando x[1] = 16961422831457.89062500
## Actualizando x[2] = -104212779799477.03125000
## Actualizando x[3] = 53328511305108.35937500
## Error en iteración 146: 140420672243814.546875000000
## Actualizando x[1] = 78770645552293.18750000
## Actualizando x[2] = -250255125185843.31250000
## Actualizando x[3] = 13943188528968.75000000
## Error en iteración 147: 163401194333105.250000000000
## Actualizando x[1] = 132099156857406.53125000
## Actualizando x[2] = -344191080672487.06250000
## Actualizando x[3] = -52106389899727.56250000
## Error en iteración 148: 126611376510236.328125000000
## Actualizando x[1] = 146042345386380.25000000
## Actualizando x[2] = -312999473566225.06250000
## Actualizando x[3] = -125127562592910.68750000
## Error en iteración 149: 80618983631112.531250000000
## Actualizando x[1] = 93935955486657.68750000
## Actualizando x[2] = -109712326123735.53125000
## Actualizando x[3] = -172095540336232.53125000
## Error en iteración 150: 215050531543131.906250000000
## Actualizando x[1] = -31191607106248.00000000
## Actualizando x[2] = 250074558101850.53125000
## Actualizando x[3] = -156499736783101.53125000
## Error en iteración 151: 381243672825746.250000000000
## Actualizando x[1] = -203287147442475.53125000
## Actualizando x[2] = 664717605389288.37500000
## Actualizando x[3] = -54856163061856.75000000
## Error en iteración 152: 460301148973426.625000000000
## Actualizando x[1] = -359786884225572.06250000
## Actualizando x[2] = 954323373625784.87500000
## Actualizando x[3] = 125037279050936.37500000
## Error en iteración 153: 375133734985563.062500000000
## Actualizando x[1] = -414643047287423.75000000
## Actualizando x[2] = 911570339167621.00000000
## Actualizando x[3] = 332358802694655.25000000
## Error en iteración 154: 218676095509322.843750000000
## Actualizando x[1] = -289605768236482.37500000
## Actualizando x[2] = 391655617896548.75000000
## Actualizando x[3] = 477161686812903.37500000
## Error en iteración 155: 553997756128851.562500000000
## Actualizando x[1] = 42753034458177.81250000
## Actualizando x[2] = -584044272958349.87500000
## Actualizando x[3] = 455785169583821.43750000
## Error en iteración 156: 1030975075465810.875000000000
## Actualizando x[1] = 519914721271086.12500000
## Actualizando x[2] = -1755571972761538.75000000
## Actualizando x[3] = 195827808948285.25000000
## Error en iteración 157: 1291409406856278.750000000000
## Actualizando x[1] = 975699890854912.50000000
## Actualizando x[2] = -2635077536085568.00000000
## Actualizando x[3] = -292022136479164.50000000
## Error en iteración 158: 1104204567090736.625000000000
## Actualizando x[1] = 1171527699803202.25000000
## Actualizando x[2] = -2636797113028843.00000000
## Actualizando x[3] = -877785986380759.00000000
## Error en iteración 159: 617633204704774.125000000000
## Actualizando x[1] = 879505563324042.50000000
## Actualizando x[2] = -1320977921929349.25000000
## Actualizando x[3] = -1317538768042773.25000000
## Error en iteración 160: 1417758646892713.500000000000
## Actualizando x[1] = 1719576943288.50000000
## Actualizando x[2] = 1313239825684550.00000000
## Actualizando x[3] = -1318398556514410.50000000
## Error en iteración 161: 2776618828533490.500000000000
## Actualizando x[1] = -1315819191099479.75000000
## Actualizando x[2] = 4607946534263108.00000000
## Actualizando x[3] = -660488960964664.00000000
## Error en iteración 162: 3608856569159357.000000000000
## Actualizando x[1] = -2634217747613885.50000000
## Actualizando x[2] = 7246033329999376.00000000
## Actualizando x[3] = 656619912842285.00000000
## Error en iteración 163: 3229930723888413.000000000000
## Actualizando x[1] = -3294706708578545.00000000
## Actualizando x[2] = 7580146858604075.00000000
## Actualizando x[3] = 2303973267131566.00000000
## Error en iteración 164: 1806004039707830.750000000000
## Actualizando x[1] = -2638086795736254.00000000
## Actualizando x[2] = 4291243722209067.00000000
## Actualizando x[3] = 3623016664999700.00000000
## Error en iteración 165: 3603874170387952.000000000000
## Actualizando x[1] = -334113528604683.00000000
## Actualizando x[2] = -2787732843487994.50000000
## Actualizando x[3] = 3790073429302048.50000000
## Error en iteración 166: 7446348769420101.000000000000
## Actualizando x[1] = 3288903136395022.00000000
## Actualizando x[2] = -12012331270289606.00000000
## Actualizando x[3] = 2145621861104545.00000000
## Error en iteración 167: 10046078182592628.000000000000
## Actualizando x[1] = 7078976565697076.00000000
## Actualizando x[2] = -19843063275347236.00000000
## Actualizando x[3] = -1393866421743987.00000000
## Error en iteración 168: 9392177470584622.000000000000
## Actualizando x[1] = 9224598426801624.00000000
## Actualizando x[2] = -21667629645260076.00000000
## Actualizando x[3] = -6006165635144791.00000000
## Error en iteración 169: 5404261248589333.000000000000
## Actualizando x[1] = 7830732005057642.00000000
## Actualizando x[2] = -13570664377499312.00000000
## Actualizando x[3] = -9921531637673612.00000000
## Error en iteración 170: 9101307657845000.000000000000
## Actualizando x[1] = 1824566369912850.50000000
## Actualizando x[2] = 5360115712891484.00000000
## Actualizando x[3] = -10833814822630032.00000000
## Error en iteración 171: 19881667965165424.000000000000
## Actualizando x[1] = -8096965267760758.00000000
## Actualizando x[2] = 31076227992031928.00000000
## Actualizando x[3] = -6785332188749651.00000000
## Error en iteración 172: 27859386792023032.000000000000
## Actualizando x[1] = -18930780090390788.00000000
## Actualizando x[2] = 54112282414726616.00000000
## Actualizando x[3] = 2680057856445757.00000000
## Error en iteración 173: 27159251751181840.000000000000
## Actualizando x[1] = -25716112279140428.00000000
## Actualizando x[2] = 61610222841405312.00000000
## Actualizando x[3] = 15538113996015972.00000000
## Error en iteración 174: 16358161609485462.000000000000
## Actualizando x[1] = -23036054422694672.00000000
## Actualizando x[2] = 42052022060720704.00000000
## Actualizando x[3] = 27056141207363316.00000000
## Error en iteración 175: 22855434336997548.000000000000
## Actualizando x[1] = -7497940426678694.00000000
## Actualizando x[2] = -8311290140666580.00000000
## Actualizando x[3] = 30805111420702664.00000000
## Error en iteración 176: 52838915394887680.000000000000
## Actualizando x[1] = 19558200780684624.00000000
## Actualizando x[2] = -79700613372414224.00000000
## Actualizando x[3] = 21026011030360356.00000000
## Error en iteración 177: 76968182081715568.000000000000
## Actualizando x[1] = 50363312201387288.00000000
## Actualizando x[2] = -146934291533828576.00000000
## Actualizando x[3] = -4155645070333275.00000000
## Error en iteración 178: 78124504303887600.000000000000
## Actualizando x[1] = 71389323231747648.00000000
## Actualizando x[2] = -174317663009035840.00000000
## Actualizando x[3] = -39850306686207096.00000000
## Error en iteración 179: 49659349986379864.000000000000
## Actualizando x[1] = 67233678161414368.00000000
## Actualizando x[2] = -128233888717328832.00000000
## Actualizando x[3] = -73467145766914272.00000000
## Error en iteración 180: 57193316993314368.000000000000
## Actualizando x[1] = 27383371475207280.00000000
## Actualizando x[2] = 5008717078896072.00000000
## Actualizando x[3] = -87158831504517920.00000000
## Error en iteración 181: 139746560604153136.000000000000
## Actualizando x[1] = -46083774291706992.00000000
## Actualizando x[2] = 202368267233785408.00000000
## Actualizando x[3] = -64116944358664424.00000000
## Error en iteración 182: 211846978047173376.000000000000
## Actualizando x[1] = -133242605796224912.00000000
## Actualizando x[2] = 397223458849226752.00000000
## Actualizando x[3] = 2504358539448005.00000000
## Error en iteración 183: 223614859990487552.000000000000
## Actualizando x[1] = -197359550154889376.00000000
## Actualizando x[2] = 490894516847775424.00000000
## Actualizando x[3] = 101184133616892736.00000000
## Error en iteración 184: 150409267233753344.000000000000
## Actualizando x[1] = -194855191615441344.00000000
## Actualizando x[2] = 385953845421710656.00000000
## Actualizando x[3] = 198611729424613312.00000000
## Error en iteración 185: 143216454208027248.000000000000
## Actualizando x[1] = -93671057998548672.00000000
## Actualizando x[2] = 35565915571758368.00000000
## Actualizando x[3] = 245447258423887648.00000000
## Error en iteración 186: 367700281556838272.000000000000
## Actualizando x[1] = 104940671426064640.00000000
## Actualizando x[2] = -507798936989049216.00000000
## Actualizando x[3] = 192976922710855296.00000000
## Error en iteración 187: 580900265272191360.000000000000
## Actualizando x[1] = 350387929849952256.00000000
## Actualizando x[2] = -1068946747335735936.00000000
## Actualizando x[3] = 17782957785879172.00000000
## Error en iteración 188: 637043285084159360.000000000000
## Actualizando x[1] = 543364852560807552.00000000
## Actualizando x[2] = -1376195089187898112.00000000
## Actualizando x[3] = -253899468494524672.00000000
## Error en iteración 189: 453269210314865280.000000000000
## Actualizando x[1] = 561147810346686720.00000000
## Actualizando x[2] = -1148970057372192000.00000000
## Actualizando x[3] = -534473373667868160.00000000
## Error en iteración 190: 361481901255766016.000000000000
## Actualizando x[1] = 307248341852161920.00000000
## Actualizando x[2] = -233647480962536704.00000000
## Actualizando x[3] = -688097544593949056.00000000
## Error en iteración 191: 962226971602717696.000000000000
## Actualizando x[1] = -227225031815706176.00000000
## Actualizando x[2] = 1256160124133214464.00000000
## Actualizando x[3] = -574485028686095872.00000000
## Error en iteración 192: 1586851061420687360.000000000000
## Actualizando x[1] = -915322576409655168.00000000
## Actualizando x[2] = 2862791469710233600.00000000
## Actualizando x[3] = -116823740481268224.00000000
## Error en iteración 193: 1806708710940462336.000000000000
## Actualizando x[1] = -1489807605095750912.00000000
## Actualizando x[2] = 3841342753220645376.00000000
## Actualizando x[3] = 628080062066607616.00000000
## Error en iteración 194: 1357378848256677120.000000000000
## Actualizando x[1] = -1606631345577018880.00000000
## Actualizando x[2] = 3388498301875939840.00000000
## Actualizando x[3] = 1431395734855116288.00000000
## Error en iteración 195: 929533191231693696.000000000000
## Actualizando x[1] = -978551283510411776.00000000
## Actualizando x[2] = 1014982473920912896.00000000
## Actualizando x[3] = 1920671376610322432.00000000
## Error en iteración 196: 2503488087356039168.000000000000
## Actualizando x[1] = 452844451344704768.00000000
## Actualizando x[2] = -3052782504972084224.00000000
## Actualizando x[3] = 1694249150937969920.00000000
## Error en iteración 197: 4318202484547035136.000000000000
## Actualizando x[1] = 2373515827955026944.00000000
## Actualizando x[2] = -7628038720825537536.00000000
## Actualizando x[3] = 507491236960456704.00000000
## Error en iteración 198: 5101993955702427648.000000000000
## Actualizando x[1] = 4067764978892997120.00000000
## Actualizando x[2] = -10676903684192950272.00000000
## Actualizando x[3] = -1526391252486041600.00000000
## Error en iteración 199: 4037664638275508736.000000000000
## Actualizando x[1] = 4575256215853454336.00000000
## Actualizando x[2] = -9911749287147593728.00000000
## Actualizando x[3] = -3814019360412770304.00000000
## Error en iteración 200: 2465005267151760896.000000000000
## 
## Resultado final x:
## [1]  4.575256e+18 -9.911749e+18 -3.814019e+18
## 
## Chequeando residuo (Ax-b):
##               [,1]
## [1,]  3.052783e+18
## [2,] -4.575256e+18
## [3,] -5.000000e+00

7.6.9

A <- matrix(c(3,-0.1,-0.2,
              0.1,7,-0.3,
              0.3,-0.2,10),3,byrow=TRUE)
b <- c(7.85,-19.3,71.4)
cat("\n=== Ejercicio 7.6.9 ===\n")
## 
## === Ejercicio 7.6.9 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 2.61666667
## Actualizando x[2] = -2.79452381
## Actualizando x[3] = 7.00560952
## Error en iteración 1: 7.983412338501
## Actualizando x[1] = 2.99055651
## Actualizando x[2] = -2.49962468
## Actualizando x[3] = 7.00029081
## Error en iteración 2: 0.476222002714
## Actualizando x[1] = 3.00003190
## Actualizando x[2] = -2.49998799
## Actualizando x[3] = 6.99999928
## Error en iteración 3: 0.009486832771
## Actualizando x[1] = 3.00000035
## Actualizando x[2] = -2.50000004
## Actualizando x[3] = 6.99999999
## Error en iteración 4: 0.000033773601
## Actualizando x[1] = 3.00000000
## Actualizando x[2] = -2.50000000
## Actualizando x[3] = 7.00000000
## Error en iteración 5: 0.000000356348
## Actualizando x[1] = 3.00000000
## Actualizando x[2] = -2.50000000
## Actualizando x[3] = 7.00000000
## Error en iteración 6: 0.000000001987
## Actualizando x[1] = 3.00000000
## Actualizando x[2] = -2.50000000
## Actualizando x[3] = 7.00000000
## Error en iteración 7: 0.000000000012
## ¡Convergencia alcanzada!
## 
## Resultado final x:
## [1]  3.0 -2.5  7.0
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.6.10

A <- matrix(c(17,-2,-3,
              -5,21,-2,
              -5,-5,22),3,byrow=TRUE)
b <- c(500,200,30)
cat("\n=== Ejercicio 7.6.10 ===\n")
## 
## === Ejercicio 7.6.10 ===
res <- gauss_seidel(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Actualizando x[1] = 29.41176471
## Actualizando x[2] = 16.52661064
## Actualizando x[3] = 11.80417622
## Error en iteración 1: 35.742402530301
## Actualizando x[1] = 33.43916176
## Actualizando x[2] = 18.60972196
## Actualizando x[3] = 13.19292812
## Error en iteración 2: 4.742142095840
## Actualizando x[1] = 33.92930755
## Actualizando x[2] = 18.85868543
## Actualizando x[3] = 13.36090749
## Error en iteración 3: 0.574841514877
## Actualizando x[1] = 33.98824078
## Actualizando x[2] = 18.88871519
## Actualizando x[3] = 13.38112636
## Error en iteración 4: 0.069164408691
## Actualizando x[1] = 33.99534173
## Actualizando x[2] = 18.89233149
## Actualizando x[3] = 13.38356210
## Error en iteración 5: 0.008332704590
## Actualizando x[1] = 33.99619702
## Actualizando x[2] = 18.89276711
## Actualizando x[3] = 13.38385548
## Error en iteración 6: 0.001003666632
## Actualizando x[1] = 33.99630004
## Actualizando x[2] = 18.89281958
## Actualizando x[3] = 13.38389082
## Error en iteración 7: 0.000120895603
## Actualizando x[1] = 33.99631245
## Actualizando x[2] = 18.89282590
## Actualizando x[3] = 13.38389508
## Error en iteración 8: 0.000014562249
## Actualizando x[1] = 33.99631394
## Actualizando x[2] = 18.89282666
## Actualizando x[3] = 13.38389559
## Error en iteración 9: 0.000001754070
## Actualizando x[1] = 33.99631412
## Actualizando x[2] = 18.89282675
## Actualizando x[3] = 13.38389565
## Error en iteración 10: 0.000000211283
## Actualizando x[1] = 33.99631415
## Actualizando x[2] = 18.89282676
## Actualizando x[3] = 13.38389566
## Error en iteración 11: 0.000000025450
## Actualizando x[1] = 33.99631415
## Actualizando x[2] = 18.89282676
## Actualizando x[3] = 13.38389566
## Error en iteración 12: 0.000000003066
## Actualizando x[1] = 33.99631415
## Actualizando x[2] = 18.89282676
## Actualizando x[3] = 13.38389566
## Error en iteración 13: 0.000000000369
## Actualizando x[1] = 33.99631415
## Actualizando x[2] = 18.89282676
## Actualizando x[3] = 13.38389566
## Error en iteración 14: 0.000000000044
## ¡Convergencia alcanzada!
## 
## Resultado final x:
## [1] 33.99631 18.89283 13.38390
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Seccion 7.7 Método de Jacobi

jacobi <- function(A, b, x_init = NULL, tol = 1e-10, maxit = 200, verbose = TRUE, verbose_every = 1){
  n <- nrow(A)
  x <- if(is.null(x_init)) rep(0, n) else x_init
  x_new <- x
  
  if(verbose) cat("Vector inicial x:\n"); print(round(x,8))
  
  for(k in 1:maxit){
    for(i in 1:n){
      s <- sum(A[i,-i]*x[-i])
      if(abs(A[i,i]) < 1e-15) stop(sprintf("Pivote cero en fila %d", i))
      x_new[i] <- (b[i] - s)/A[i,i]
    }
    
    err <- sqrt(sum((x_new - x)^2))
    if(err < tol){
      if(verbose) cat(sprintf("¡Convergencia alcanzada en %d iteraciones!\n", k))
      x <- x_new
      break
    }
    
    x <- x_new
    
    if(verbose & (k %% verbose_every == 0)){
      cat(sprintf("Iteración %d: x = %s, error = %.12f\n", k, paste(round(x,5), collapse=", "), err))
    }
  }
  
  if(verbose){
    cat("\nResultado final x:\n"); print(round(x,8))
    resid <- A %*% x - b
    cat("\nChequeando residuo (Ax-b):\n"); print(round(resid,8))
  } else {
    resid <- A %*% x - b
  }
  
  list(x=x, residual=resid)
}

7.7.1 (4x4)

A <- matrix(c(10,2,-1,0,
              1,20,-2,3,
             -2,1,30,0,
              1,2,3,20),4,byrow=TRUE)
b <- c(26,-15,53,47)
cat("\n=== Ejercicio 7.7.1 ===\n")
## 
## === Ejercicio 7.7.1 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0 0
## Iteración 1: x = 2.6, -0.75, 1.76667, 2.35, error = 3.995761643431
## Iteración 2: x = 2.92667, -1.05583, 1.965, 2.03, error = 0.584791629557
## Iteración 3: x = 3.00767, -1.00433, 1.99697, 2.0145, error = 0.102350979447
## Iteración 4: x = 3.00056, -1.00286, 2.00066, 2.0005, error = 0.016188489292
## Iteración 5: x = 3.00064, -1.00004, 2.00013, 2.00016, error = 0.002892363514
## Iteración 6: x = 3.00002, -1.00004, 2.00004, 1.99995, error = 0.000656917560
## Iteración 7: x = 3.00001, -0.99999, 2, 2, error = 0.000080951113
## Iteración 8: x = 3, -1, 2, 2, error = 0.000018200186
## Iteración 9: x = 3, -1, 2, 2, error = 0.000002900760
## Iteración 10: x = 3, -1, 2, 2, error = 0.000000504238
## Iteración 11: x = 3, -1, 2, 2, error = 0.000000114626
## Iteración 12: x = 3, -1, 2, 2, error = 0.000000015148
## Iteración 13: x = 3, -1, 2, 2, error = 0.000000003398
## Iteración 14: x = 3, -1, 2, 2, error = 0.000000000578
## ¡Convergencia alcanzada en 15 iteraciones!
## 
## Resultado final x:
## [1]  3 -1  2  2
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

7.7.2 (3x3)

A <- matrix(c(-1,2,10,
              11,-1,2,
               1,5,2),3,byrow=TRUE)
b <- c(11,12,8)
cat("\n=== Ejercicio 7.7.2 ===\n")
## 
## === Ejercicio 7.7.2 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Iteración 1: x = -11, -12, 4, error = 16.763054614240
## Iteración 2: x = 5, -125, 39.5, error = 119.520918671168
## Iteración 3: x = 134, 122, 314, error = 391.152463880774
## Iteración 4: x = 3373, 2090, -368, error = 3850.878990568257
## Iteración 5: x = 489, 36355, -6907.5, error = 35002.467645153250
## Iteración 6: x = 3624, -8448, -91128, error = 95447.523038840562
## Iteración 7: x = -928187, -142404, 19312, error = 947846.476628467557
## Iteración 8: x = -91699, -10171445, 820107.5, error = 10095674.766287058592
## Iteración 9: x = -12141826, 631514, 25474466, error = 29491471.257269147784
## Iteración 10: x = 256007677, -82611166, 4492132, error = 281555959.043343544006
## Iteración 11: x = -120301023, 2825068699, 78524080.5, error = 2932863986.689599990845
## Iteración 12: x = 6435378192, -1166263104, -7002521232, error = 10442646324.055049896240
## Iteración 13: x = -72357738539, 56784117636, -302031332, error = 98038249867.059326171875
## Iteración 14: x = 110547921941, -796539186605, -105781424816.5, error = 879056906375.384399414062
## Iteración 15: x = -2650892621386, 1004464291706, 1936074005546, error = 3877929989275.111816406250
## Iteración 16: x = 21369668638861, -25287670824166, -1185714418568, error = 35749255868807.687500000000
## Iteración 17: x = -62432485834023, 232694926190323, 52534342740988.5, error = 276520642986854.343750000000
## Iteración 18: x = 990733279790520, -581688658692288, -550521072558792, error = 1461524747355368.500000000000
## Iteración 19: x = -6668588042972507, 9797023932578124, 958855006835464, error = 12986958624965852.000000000000
## Iteración 20: x = 29182597933510876, -71436758459026672, -21158265809959056, error = 91506294705838064.000000000000
## Iteración 21: x = -354456175017643904, 278692045648701536, 164000597180811264, error = 551409731616527104.000000000000
## Iteración 22: x = 2197390063105515776, -3571016730832460288, -519502026612931904, error = 4668977695756570624.000000000000
## Iteración 23: x = -12337053727794239488, 23132286640934809600, 7828846795528392704, error = 31527946259336495104.000000000000
## Iteración 24: x = 1.24553041237154e+20, -1.2004989741468e+20, -51662189738439909376, error = 206831379046638583808.000000000000
## Iteración 25: x = -7.56721692213759e+20, 1.26675907413181e+21, 2.37848222918123e+20, error = 1668442554725028593704.000000000000
## Iteración 26: x = 4.91200037744485e+21, -7.8482421685151e+21, -2.78853683922264e+21, error = 11152428618952824848044.000000000000
## Iteración 27: x = -4.35818527292566e+22, 4.8454930473448e+22, 1.71646052325653e+22, error = 76940424467389054192828.000000000000
## Iteración 28: x = 2.68555913272549e+23, -4.45071169556692e+23, -9.93463998189917e+22, error = 595460167159552548002642.000000000000
## Iteración 29: x = -1.8836063373033e+24, 2.75542224636006e+24, 9.78399967255456e+23, error = 4004559612475804322048666.000000000000
## Iteración 30: x = 1.52948441652747e+25, -1.87628697758254e+25, -5.9467524472485e+24, error = 28391790876689741546662086.000000000000
## Iteración 31: x = -9.69932640241358e+25, 1.56349780923525e+26, 3.92597523569262e+25, error = 212877165878163548026244242.000000000000
## Iteración 32: x = 7.05297085416311e+26, -9.88406399551641e+26, -3.42377820296743e+26, error = 1449063060878425053944864486.000000000000
## Iteración 33: x = -5.40059100207072e+27, 7.07351229898593e+27, 2.11836745617095e+27, error = 10408250081277055846400486062.000000000000
## Iteración 34: x = 3.53306991596813e+28, -5.5169766110436e+28, -1.49834852464295e+28, error = 76326516173968613752662220028.000000000000
## Iteración 35: x = -2.60174384685167e+29, 3.58670720263636e+29, 1.20259065696249e+29, error = 526191742928337953466402082648.000000000000
## Iteración 36: x = 1.91993209748976e+30, -2.62140010014434e+30, -7.66589608316506e+29, error = 3797392123400792130028686660684.000000000000
## Iteración 37: x = -1.29086962834537e+31, 1.95860738557544e+31, 5.59353420161596e+30, error = 27450160182405371216620484804826.000000000000
## Iteración 38: x = 9.51074897276684e+31, -1.30808590714759e+32, -4.25108364976591e+31, error = 191311479143411258928464666000420.000000000000
## Iteración 39: x = -6.8672554640611e+32, 9.61160714009034e+32, 2.79467731923064e+32, error = 1381061206960568810744808804620400.000000000000
## Iteración 40: x = 4.7169987472487e+33, -6.99504554662108e+33, -2.05953901181953e+33, error = 9898101174002938164044202640280646.000000000000
## Iteración 41: x = -3.45854812114375e+34, 4.77679081960967e+34, 1.51291144929283e+34, error = 69563753800641416796668684888004202.000000000000
## Iteración 42: x = 2.46826961321477e+35, -3.50182064339955e+35, -1.02127029884523e+35, error = 501304445270586959368028086288644442.000000000000
## Iteración 43: x = -1.72163442752514e+36, 2.5108425147672e+36, 7.5204168018915e+35, error = 3576297815745235412806204206264824224.000000000000
## Iteración 44: x = 1.25421018314259e+37, -1.74338953423982e+37, -5.41628907315543e+36, error = 25284284536814941472088420080400822628.000000000000
## Iteración 45: x = -8.90306814163507e+37, 1.27130541999374e+38, 3.73136874402827e+37, error = 181773919288444602490288046486082222866.000000000000
## Iteración 46: x = 6.27397958401575e+38, -9.04710120699293e+38, -2.7331101429026e+38, error = 1294006512531901663066248828662024288448.000000000000
## Iteración 47: x = -4.54253038430118e+39, 6.3547555138368e+39, 1.94807632254744e+39, error = 9184909475218288686480208004242462460202.000000000000
## Iteración 48: x = 3.2190274253148e+40, -4.60716815822181e+40, -1.36156235924414e+40, error = 65879124145387949638640600264426060620660.000000000000
## Iteración 49: x = -2.2829959908885e+41, 3.26861769599746e+41, 9.90840668289712e+40, error = 468652913514151563446208220260622488488202.000000000000
## Iteración 50: x = 1.6445642074892e+42, -2.31312745631941e+42, -7.03004624454939e+41, error = 3334742601707784491404846684222488888464208.000000000000
## Iteración 51: x = -1.16563011571882e+43, 1.66841970334714e+43, 4.96053653705393e+42, error = 23872307297531690824080204424288488868286464.000000000000
## Iteración 52: x = 8.2973759437482e+43, -1.18298239654963e+44, -3.58823420050843e+43, error = 169832998295695934426800862646228282008208660.000000000000
## Iteración 53: x = -5.95419899360768e+44, 8.40946669802133e+44, 2.54258719418665e+44, error = 1210186179123331403608260284668000686280644220.000000000000
## Iteración 54: x = 4.22448053379092e+45, -6.04110145413112e+45, -1.80465672482495e+45, error = 8650616126737672102668082460486684288282688668.000000000000
## Iteración 55: x = -3.01287701565117e+46, 4.28599724220502e+46, 1.29905133684323e+46, error = 61565882738111846352828044066244484666442622806.000000000000
## Iteración 56: x = 2.15625078528424e+47, -3.05435444984764e+47, -9.20855459768697e+46, error = 439028051697818988362202404402866080248842680066.000000000000
## Iteración 57: x = -1.53172634973823e+48, 2.18770477185892e+48, 6.55776073197699e+47, error = 3135009115799073723206402680426626448082462288220.000000000000
## Iteración 58: x = 1.09331702756948e+49, -1.55374377007251e+49, -4.70339875477819e+48, error = 22322076032326034516888424886662442480246442820288.000000000000
## Iteración 59: x = -7.81088629492321e+49, 1.10858075523087e+50, 3.33770091139653e+49, error = 159230734807667267146882060486662242606624868468622.000000000000
## Iteración 60: x = 5.55486242185826e+50, -7.92443474213622e+50, -2.38090757333101e+50, error = 1136261939531376390804862060680466422424844662006248.000000000000
## Iteración 61: x = -3.96579452175825e+51, 5.63416714937789e+51, 1.70336556444114e+51, error = 8093982734292631368862200446668688248608622426006242.000000000000
## Iteración 62: x = 2.83019899431672e+52, -4.02170086104585e+52, -1.21025206125656e+52, error = 57742036039325461318842266820024802802622468802682488.000000000000
## Iteración 63: x = -2.01459223346573e+53, 2.87116848149708e+53, 8.63915265545627e+52, error = 411872245048412183360864804468646068268282082466066006.000000000000
## Iteración 64: x = 1.43814896184504e+54, -2.04326840370318e+54, -6.17062508700984e+53, error = 2934937478502411496040602404866806822422268244882266444.000000000000
## Iteración 65: x = -1.02571618944162e+55, 1.45855135628935e+55, 4.38909652833542e+54, error = 20937008239509630370682066884646684808444240420886084224.000000000000
## Iteración 66: x = 7.30619924091412e+55, -1.04050587781907e+56, -3.13352029600257e+55, error = 149307841689872325584864664880464208626008000422844080660.000000000000
## Iteración 67: x = -5.21453205164071e+56, 7.41011510580502e+56, 2.23595473250198e+56, error = 1064221743767339257768660200268468644044424862864088848684.000000000000
## Iteración 68: x = 3.71797775366298e+57, -5.28879431030439e+57, -1.59180217386922e+57, error = 7591245069776451343428224844626020848888860264062060224888.000000000000
## Iteración 69: x = -2.6495610359301e+58, 3.77141509425543e+58, 1.13629968989295e+58, error = 54128929659626454400004048882040624044424286288008224080644.000000000000
## Iteración 70: x = 1.89058270874403e+59, -2.68725720154452e+59, -8.10375721767354e+58, error = 385884355057795024522068606240444466206640402666240206868640.000000000000
## Iteración 71: x = -1.34782716207626e+60, 1.91756583526497e+60, 5.77285164948928e+59, error = 2752322006148777044480602062224022024624220284062622688444842.000000000000
## Iteración 72: x = 9.60798332001921e+60, -1.3671528452941e+61, -4.12000100712429e+60, error = 19624325247725549604824806484226628846222282848486888480666426.000000000000
## Iteración 73: x = -6.85430669771249e+61, 9.74478145059627e+61, 2.93748294723428e+61, error = 139917828424448652504644402022082886042068424822268820026662682.000000000000
## Iteración 74: x = 4.88643923735354e+62, -6.95224077803688e+62, -2.09348002776344e+62, error = 997885094644581229208886662606246428640428664086264264682000002.000000000000
## Iteración 75: x = -3.48392818337082e+63, 4.9563871555362e+63, 1.49373823264154e+63, error = 7114951960782412572862664262248866222464888464826484440420826024.000000000000
## Iteración 76: x = 2.48501566374878e+64, -3.53357335517959e+64, -1.06490037971551e+64, error = 50731859198456603608440000888622060202200460084086844846442060824.000000000000
## Iteración 77: x = -1.77161505075143e+65, 2.52053715418056e+65, 7.59142555607459e+64, error = 361793594080598224768448680600082848684022008628246482648220482668.000000000000
## Iteración 78: x = 1.26324998644357e+66, -1.79694804470508e+66, -5.41553536007568e+65, error = 2579623994211390159886224862440686846680688282484046044428068084008.000000000000
## Iteración 79: x = -9.00943144948584e+66, 1.28126427788641e+67, 3.86074511854091e+66, error = 18394248050954579692804806442806848662828220820446640088846860060802.000000000000
## Iteración 80: x = 6.42327367431374e+67, -9.13822557072625e+67, -2.75268912224174e+67, error = 131172313340746551474282046406460648462628482286660824040224042284004.000000000000
## Iteración 81: x = -4.58033423638699e+68, 6.51506321729677e+68, 1.96339270896587e+68, error = 935286821947234729522288460448668046842668064806884244668846248042840.000000000000
## Iteración 82: x = 3.26640535242523e+69, -4.64568911823252e+69, -1.39974909250484e+69, error = 6669274457509624719600664488806660002042848064866260004686862848406264.000000000000
## Iteración 83: x = -2.32888691615135e+70, 3.31309606916678e+70, 9.98102011936868e+69, error = 47558172622845946076864408644000806682084064224482202282466020002420406.000000000000
## Iteración 84: x = 1.66072122577022e+71, -2.36215520537911e+71, -7.11829671484128e+70, error = 339105743053936213988028004288880888684066444028000468408222486264420460.000000000000
## Iteración 85: x = -1.18426071255995e+72, 1.68442741405042e+72, 5.07502740056266e+71, error = 2418087094286744896040626644080400068608888022640468602240088406286646862.000000000000
## Iteración 86: x = 8.4438822286635e+72, -1.20118623580469e+73, -3.61893817884608e+72, error = 17242882725202322567008808286224608868842866288480408280888848488480824284.000000000000
## Iteración 87: x = -6.02131065045546e+73, 8.56448281576063e+73, 2.58077147807855e+73, error = 122949335942858679482024420888860228002204064868846606288688880002846002224.000000000000
## Iteración 88: x = 4.29366804123068e+74, -6.1072874198853e+74, -1.84005517141739e+74, error = 876724717558482848168802224060842888840862200488228842682402840268002622448.000000000000
## Iteración 89: x = -3.06151265539445e+75, 4.35502381107027e+75, 1.31213845290979e+75, error = 6251670544599486728020028082462462820000884004464804888886880684200066002424.000000000000
## Iteración 90: x = 2.18314321512384e+76, -3.10523623035193e+76, -9.35680319997846e+75, error = 44577662664236187350824660660488240408804226280640068208020022642666448244200.000000000000
## Iteración 91: x = -1.55672756606823e+77, 2.21432147263666e+77, 6.67151896831791e+76, error = 317872793266826865302644828822266084800224404428086084460684646828400680262284.000000000000
## Iteración 92: x = 1.11001619135912e+78, -1.5789699433087e+78, -4.75743989855754e+77, error = 2266644692537083450240246408044264422802484220086484240280404246668204022008888.000000000000
## Iteración 93: x = -7.91537978517493e+78, 1.12586901252388e+79, 3.39241676259218e+78, error = 16162486076578554237868820866062884820408680266642262646448842848828086680022426.000000000000
## Iteración 94: x = 5.64415478763995e+79, -8.02843441117399e+79, -2.41890354205096e+79, error = 115250500041772100952222040686086804046842046042208204480228004004208606222464622.000000000000
## Iteración 95: x = -4.02459042428576e+80, 5.72478955799375e+80, 1.7249008634115e+80, error = 821810412704804674964440406042084200422024884682066842280860480046284644624248022.000000000000
## Iteración 96: x = 2.86985877501025e+81, -4.08206929403204e+81, -1.22996786828415e+81, error = 5860014643567715625280680224068028822024860200268868402404646880246680426682642484.000000000000
## Iteración 97: x = -2.04638172709056e+82, 2.91085107885444e+82, 8.77024384757497e+81, error = 41786113463633763516686008624028048406048220824242202668622424864840026088820008642.000000000000
## Iteración 98: x = 1.45919460052839e+83, -2.07561502284811e+83, -6.25393683359083e+82, error = 297961660035131394028422844662242842446028264626606662408204884828282222604206824068.000000000000
## Iteración 99: x = -1.04051668792871e+84, 1.48003532390941e+84, 4.45944025685609e+83, error = 2124657417800274771466680204420082620220882486626226028484820640086668846266684884066.000000000000
## Iteración 100: x = 7.41951090467491e+84, -1.05537955158445e+85, -3.17982996580917e+84, error = 15150293349794514590446240240020806400042202646464860400002408400040482488042688620424.000000000000
## Iteración 101: x = -5.29058906897808e+85, 7.52549600198057e+85, 2.26747333372739e+85, error = 108031268842416495696888080422088828464660680026624260202882468842600840000242886808642.000000000000
## Iteración 102: x = 3.77257253412351e+86, -5.36615330913041e+86, -1.61684454704624e+86, error = 770333624922049458800668622480460024644604688442066206240042088266402846682862228064002.000000000000
## Iteración 103: x = -2.69007520887232e+87, 3.82646087812661e+87, 1.15290970057643e+87, error = 5493006483991461033860202460006860628060200680264882022228082062460642068604680680264202.000000000000
## Iteración 104: x = 1.91820187620175e+88, -2.72850078964427e+88, -8.22111459088036e+87, error = 39168664968304124820224260666862668448082824828880848024080088240246846464400084426866426.000000000000
## Iteración 105: x = -1.36781161701689e+89, 1.94559977200432e+89, 5.86215103600979e+88, error = 279298491910221662426828448048480826880288648444806088666220068266824280604280220800604080.000000000000
## Iteración 106: x = 9.75335058001842e+89, -1.38734975799838e+90, -4.18009362150234e+89, error = 1991586775682750899424826848688884664820860222802424866466628682202282248264642480402244664.000000000000
## Iteración 107: x = -6.95479313749911e+90, 9.8926669137198e+90, 2.98070686599504e+90, error = 14201302099130814031262404042600228088424488466026420866282688046688040422262422240800082048.000000000000
## Iteración 108: x = 4.959240248739e+91, -7.05413107805001e+91, -2.12542707155499e+91, error = 101264723567152108028862082228008664488246204622806084280062460824028022684080828086080426226.000000000000
## Iteración 109: x = -3.536253287165e+92, 5.0300788593019e+92, 1.51557075707555e+92, error = 722085162053103065882046684820424626200624224004484242484884266844486482466466228866862222060.000000000000
## Iteración 110: x = 2.52158652893593e+93, -3.58676446446639e+93, -1.08070705046722e+93, error = 5148937364263695816844026046266062082400626668062206846462644048008620086222246624882422080000.000000000000
## Iteración 111: x = -1.7980599433605e+94, 2.55760377173608e+94, 7.706117896698e+93, error = 36715350372713610902444082420804420000864644842464622626868802624680268468408448022424866860484.000000000000
## Iteración 112: x = 1.28213254401702e+95, -1.82374357976259e+95, -5.49497945765995e+94, error = 261804838259749555824080446644828660620020420888448066222048446648424240264264644666246446844666.000000000000
## Iteración 113: x = -9.14246661718514e+95, 1.30044620926552e+96, 3.91829267739797e+95, error = 1866839854373403844008644808480662060822284266604480068826200082800646264628888246264840660684846.000000000000
## Iteración 114: x = 6.51918509592901e+96, -9.27305474342406e+96, -2.79399219230454e+96, error = 13311810112355458987444206080666488048468480802464044862864008606642840046466886828686628806244800.000000000000
## Iteración 115: x = -4.64860314098935e+97, 6.612305167061e+97, 1.99230443105956e+97, error = 94922018450407829752268204282084408462824646604844060400866208084222480226020640640268686068460440.000000000000
## Iteración 116: x = 3.31476546447176e+98, -4.71500256887637e+98, -1.42064613471578e+98, error = 676856361009655165568402680008624826826604080246202882446248424668664880826486802226820468224000640.000000000000
## Iteración 117: x = -2.36364664849106e+99, 3.36211278397578e+99, 1.0130123689955e+99, error = 4826435622526981613404820800200226802420462800866446624246644864806842044064248224022426400206624664.000000000000
## Iteración 118: x = 1.68543492579066e+100, -2.39740883954106e+100, -7.22345863569393e+99, error = 34415675442874772016884062024222600246404462668446080482282620620446806288866064402804466022622248600.000000000000
## Iteración 119: x = -1.20182763147761e+101, 1.70950924565585e+101, 5.15080463595732e+100, error = 245406439469987848960048826660000604228682442268004082268400026404468884460646686262462880262426662840.000000000000
## Iteración 120: x = 8.56982312726902e+101, -1.21899430190622e+102, -3.67285929840082e+101, error = 1749910772754430531200408826880046222642064424802820264646462446422044404660004020246224846462628484806.000000000000
## Iteración 121: x = -6.11084790221326e+102, 8.69223358031576e+102, 2.6189945984021e+102, error = 12478019371315538192064400224060482240486622406402080200602484002888000224680006628660202680486084208404.000000000000
## Iteración 122: x = 4.35744131446525e+103, -6.19813377275416e+103, -1.86751599996828e+103, error = 88976513006237449384020880040208282000620800408846404282020442446642280060440688020082626826842648646800.000000000000
## Iteración 123: x = -3.10714275451911e+104, 4.41968224591812e+104, 1.33166137746528e+104, error = 634461516508758982108088440062660480060046028806820866864064042460066486442828064424884246828624002626280.000000000000
## Iteración 124: x = 2.2155978266489e+105, -3.15152475447796e+105, -9.49563423753575e+104, error = 4524129521929165187882406486668408604840844404260606848224286466426226024044624066688860628600480260666408.000000000000
## Iteración 125: x = -1.57986837464917e+106, 2.24724492456308e+106, 6.77101297287046e+105, error = 32260032300832392440428462206064440602246482844624860262046682648884066288042604846822644062668266064868608.000000000000
## Iteración 126: x = 1.12655028219966e+107, -1.60243495265668e+107, -4.82817812408311e+106, error = 230035394336075439744288060864484666828482080246644806264868482260688844248080442448002442866482440244804860.000000000000
## Iteración 127: x = -8.03304802939646e+107, 1.14264174793797e+108, 3.44281224054186e+107, error = 1640304265184356424802462040620868828684408264200262426668406802208404086280408804842086486064880224062482468.000000000000
## Iteración 128: x = 5.72809573641779e+108, -8.14779038422774e+108, -2.45495196837509e+108, error = 11696453679363389509204844208022444828042242422068088464866686466086082242406420428822240024044864020066466688.000000000000
## Iteración 129: x = -4.08451004522064e+109, 5.80991491638455e+109, 1.75054280923605e+109, error = 83403455413305006480868840464840464264860608666868488624006206864066042664682662604820464888028444260488644444.000000000000
## Iteración 130: x = 2.91252579251295e+110, -4.14285248789549e+110, -1.24825322683511e+110, error = 594721725608426208084264644262600626682248048288406602004288440028820480802624682886684246422084624804846404042.000000000000
## Iteración 131: x = -2.0768237244142e+111, 2.95412772639723e+111, 8.90086832348226e+110, error = 4240759134143304157660648400406846082206480426400882088024640444842668042480260000824282006622206000822846260288.000000000000
## Iteración 132: x = 1.48091237762767e+112, -2.10648873038598e+112, -6.34690745378597e+111, error = 30239417856786557688420844060404420008840408022604046662228800622662406684668642842246860688662228488420264628866.000000000000
## Iteración 133: x = -1.05598849145579e+113, 1.50206546631472e+113, 4.52576563715111e+112, error = 215627027603253578546084082062840648402286482084600606260262242628688682060828648488202826668084640620244062646224.000000000000
## Iteración 134: x = 7.52989656978055e+113, -1.07107202785835e+114, -3.2271694200589e+113, error = 1537563294439131556420044044008460860868060884626644088004868284042482464668084264202400646464868686008248288628284.000000000000
## Iteración 135: x = -5.3693134757756e+114, 7.63745234274683e+114, 2.30118524115685e+114, error = 10963843077568912035000064482620662460646402242824644080408224488400248480844064424086628448826826262026206642862842.000000000000
## Iteración 136: x = 3.82867570970621e+115, -5.44600777512179e+115, -1.64089741189793e+115, error = 78179446179370808310080624868680662226202020680608666422266866886220624204046446044428866626408002006260664226282406.000000000000
## Iteración 137: x = -2.73009896692229e+116, 3.88336379829725e+116, 1.17006815829514e+116, error = 557471149490466077408028400024224068288222220828826060886466020202044020248824804268848864662424044288408224826022426.000000000000
## Iteración 138: x = 1.94674091795459e+117, -2.76909523195549e+117, -8.34336001228198e+116, error = 3975137886639036164040008240262022842844420064224860844082806602060828626482242824280242422808602624420462686820600868.000000000000
## Iteración 139: x = -1.3881550476193e+118, 1.97454780950441e+118, 5.94936762091142e+117, error = 28345360385571302512482260000468268266268448664466284402620644468284682808622208648642064626600402046220664024884264420.000000000000
## Iteración 140: x = 9.89846323992024e+118, -1.407983199963e+119, -4.24229199995137e+118, error = 202121163048527494666222240866240680224604068284064684480624608222224602620026046622408084284424866288460228404062462220.000000000000
## Iteración 141: x = -7.05825839987736e+119, 1.0039851163922e+120, 3.02503483791148e+119, error = 1441257519225868143144608620646462888826426628800602602626462406262460002866280606062460640228026624060044664828448402662.000000000000
## Iteración 142: x = 5.03300507069588e+120, -7.1590772722828e+120, -2.15704987098663e+120, error = 10277118783385579728006822644284466402604484828042840426408044206686206620288264484444644804882020088800860422806828828262.000000000000
## Iteración 143: x = -3.58886532544319e+121, 5.10489560356814e+121, 1.53811906453591e+121, error = 73282652395152523592886068848480826620202664448064880882626062406442800442202084668684620860206828244046864404206822824266.000000000000
## Iteración 144: x = 2.55909818524953e+122, -3.64012804508033e+122, -1.09678063461987e+122, error = 522553758226192443560644420848668222262282402404042408482624448284484280646008806082002042220066024802444468260280068222680.000000000000
## Iteración 145: x = -1.82480624363594e+123, 2.59565187685051e+123, 7.82077102007605e+122, error = 3726153731739635587886242846606064804226884844428066262640840228844240044622864826284642408880224466628686006208826646480626.000000000000
## Iteración 146: x = 1.30120747737771e+124, -1.85087144759801e+124, -5.57672657030831e+123, error = 26569939812171557698666662640000884286680082822208864466428424066240824468680062446866622024020864620428646404468420204408220.000000000000
## Iteración 147: x = -9.27846946550434e+124, 1.31979369370931e+125, 3.97657488030618e+124, error = 189461235809530921862820848846228244288068642202082688408444826880608486440480606088080484064624268640266662842040820068866480.000000000000
## Iteración 148: x = 6.6161622677248e+125, -9.41100143599353e+125, -2.83556076099806e+125, error = 1350983861437937777546622668662002848282248086886802440466466862266488864426660864000666604604622202204408244082460848624262020.000000000000
## Iteración 149: x = -4.71776104819677e+126, 6.71066634229767e+126, 2.02194224561214e+126, error = 9633408157685892347284466242422804004604008606002000428442420864642820266006244204664680248042480820660820880864046282808626286.000000000000
## Iteración 150: x = 3.36407551407168e+127, -4.78514870389402e+127, -1.44177853316458e+127, error = 68692568656495304220608604240048484888402228224462066064424006042442442686824848660686026888602228082866266684062608262868040840.000000000000
## Iteración 151: x = -2.39880827394338e+128, 3.41212735884593e+128, 1.02808340026992e+128, error = 489823427510539393760888600262008440448842404840084048084040444642024688886606668444640828020046602824482448628260482826448020406.000000000000
## Iteración 152: x = 1.71050887203911e+129, -2.43307242128374e+129, -7.33091426014313e+128, error = 3492764883556935598622462248686868820806468840282226068424246440048604280260000480606844600660040088200486644802044042424406440666.000000000000
## Iteración 153: x = -1.21970591027106e+130, 1.73494147404015e+130, 5.22742661718979e+129, error = 24905722647975670686826004082688684222460026422864664260606888024444840060428206002686888424688626820480282240002062866644840880826.000000000000
## Iteración 154: x = 8.6973095652701e+130, -1.23712796895437e+131, -3.72750072996486e+130, error = 177594268023102653658840806622628200628024804820220224084824606840606480044022028882808064642042640008408684088888886066268622686460.000000000000
## Iteración 155: x = -6.2017566678736e+131, 8.82154037580414e+131, 2.65795444412242e+131, error = 1266364544520979349544688482222604664484200228802462000448468068442446240462082200206628062622486806206806844842684442024008444002026.000000000000
## Iteración 156: x = 4.42226251928325e+132, -6.29034144583647e+132, -1.89529726055735e+132, error = 9030016389766493431088406624462044628462822662460068202486644648802880284684684682088800604626680048080424226668248048240802488444000.000000000000
## Iteración 157: x = -3.15336554972465e+133, 4.4854293191001e+133, 1.35147223549496e+133, error = 64389986776651187814068888648282424482668242424062840622084828080666084886028802604864640220242022628844488426244208084046262062226806.000000000000
## Iteración 158: x = 2.24855809931498e+134, -3.19840765759812e+134, -9.63689052288793e+133, error = 459143175509509207284062406686626068466446882422422202002648420406686408228206660264800260048422488446448062686602484220460888228268842.000000000000
## Iteración 159: x = -1.60337058380842e+135, 2.28067609878872e+135, 6.87174009433782e+134, error = 3273994381285133068846402864406428624024828824888066246208826648446622288822864482666288020000802408200408062222688460802028644826606604.000000000000
## Iteración 160: x = 1.14330922919152e+136, -1.6262728403025e+136, -4.90000495506758e+135, error = 23345744443246490922640860062426404686620206262420488404242886440064264882624620422864684408046604004040602844222824260666866004280882426.000000000000
## Iteración 161: x = -8.15255063567259e+136, 1.15964005300933e+137, 3.4940274861605e+136, error = 166470592191555633180468686604062428028422022688648080020822824248686204624864668428406460220828644868008208824662484886402222040446662240.000000000000
## Iteración 162: x = 5.81330759217915e+137, -8.26900020200775e+137, -2.49147260073968e+137, error = 1187045376934939752822204202420406260888688206802466204626626248044828842888468444480208640864620462886024828424048622044226888246820828622.000000000000
## Iteración 163: x = -4.14527264114123e+138, 5.89634383124913e+138, 1.77658467089298e+138, error = 8464418317077944623224088446686626042424206400600828422226828886260204028224028820208226800846402466246640622608244682840406282804808662260.000000000000
## Iteración 164: x = 2.9558534371428e+139, -4.20448297107676e+139, -1.26682232575522e+139, error = 60356898560280193560602284466428262082288806468228262220284866806466286840206460866884480462864888842048246844420842226686424200420044804600.000000000000
## Iteración 165: x = -2.10771891997057e+140, 2.99807431570604e+140, 9.0332807091205e+139, error = 430384589215913652968826480648400262624466046246064062800620482860646860442464086004220848044884442488044860604260624642882084846444028866608.000000000000
## Iteración 166: x = 1.50294293405326e+141, -2.13782519778522e+141, -6.44132632927982e+140, error = 3068926656553952573440048840228008622844864024022406286620002444048460668226668024608624288422284004688080604860448642000684400880646422604800.000000000000
## Iteración 167: x = -1.07169767248503e+142, 1.52441070087299e+142, 4.59309152743642e+141, error = 21883475971788578976026824088084084004880622442688882228680400266442802286624044246806682688680846028464242642002488684888662288882444228222200.000000000000
## Iteración 168: x = 7.64191292918239e+142, -1.0870056091848e+143, -3.27517791593996e+142, error = 156043651091455519184802200628602646680048022464020048480488228280806244826464866608288402468848682240200220448646864464882264442428026088288444.000000000000
## Iteración 169: x = -5.44918913430956e+143, 7.75106863891264e+143, 2.33541837650288e+143, error = 1112694395526907890482282262828866884624286286420844846622424824802000848628044804882028402008660664648226848666462884024644408228004260022806802.000000000000
## Iteración 170: x = 3.88563210428541e+144, -5.52702437243994e+144, -1.66530770301268e+144, error = 7934246657282901937624808066488442208266000804264080844048428846200422408424208084408082846824484464268826828806024260682860444002600664802006866.000000000000
## Iteración 171: x = -2.77071257750067e+145, 3.94113377411141e+145, 1.18747448789571e+145, error = 56576424098656076258660204484286484688440600648408806664220608044444002042442062604448086624282644660686066884842666248488826062626824646424268268.000000000000
## Iteración 172: x = 1.975701242718e+146, -2.81028893767159e+146, -8.4674781465282e+145, error = 403427307448348277042628284080428802866282000220028280020440846082268422006022464202622066240280404282202060444008426224860226480062000422624820260.000000000000
## Iteración 173: x = -1.40880560218714e+147, 2.00392180405923e+147, 6.03787172281999e+146, error = 2876703413251236609068222820084666248488468842200666804860820206624080482204602008206422286820082248640626400624662822404464484046066226286608626402.000000000000
## Iteración 174: x = 1.00457153309384e+148, -1.42892872794945e+148, -4.30540170905451e+147, error = 20512797164707914166884468862082020028062862682424286262084026240248608002880626640880246286420204828064424020824004488240268408422460624482428224846.000000000000
## Iteración 175: x = -7.16325916495341e+148, 1.01892065222214e+149, 3.07003605332671e+148, error = 146269805122207306730480686266866880064068840482688004000826660228262088846084246004608660044482460424402844628260682880424844466426000826288466022604.000000000000
## Iteración 176: x = 5.10787735777099e+149, -7.26557787078341e+149, -2.18913867230768e+149, error = 1043000411447087320488642686464024266046264086200200600602686806008088004848668228240048866444488484062004268820620002604682624262866620026008224266844.000000000000
## Iteración 177: x = -3.64225424646436e+150, 5.18083735908655e+150, 1.5610005998073e+150, error = 7437282476090579024044628420622660460880202642688448848842440262604262624842668240642082684804082440080668866240648862282680088284448844488640686446220.000000000000
## Iteración 178: x = 2.59716807162461e+151, -3.69427955114934e+151, -1.11309662744842e+151, error = 53032740956216473308668840820006266202240246440822862862066466004226682804888826206828022466044682422404202008286026406404628200860480206600604444464424.000000000000
## Iteración 179: x = -1.85195253767829e+152, 2.63426555329739e+152, 7.93711484206103e+151, error = 378158503683930156608248404022864204448642008802402026408286802808868264484800224466006042420240206804228026886020002686884826660288604820288220828248220.000000000000
## Iteración 180: x = 1.32056459486558e+153, -1.87840549460489e+153, -5.65968761440434e+152, error = 2696520137351688103082040844446220204402664820824040464064286400660484064080682024484886648628442660442268408286480680488468044868224882684646464240026804.000000000000
## Iteración 181: x = -9.41649860361412e+153, 1.33942730206405e+154, 4.03573143907945e+153, error = Inf
## Iteración 182: x = 6.71458604320755e+154, -9.55100217615965e+154, -2.87774332497943e+154, error = Inf
## Iteración 183: x = -4.78794376021136e+155, 6.81049598253242e+155, 2.05202124187953e+155, error = Inf
## Iteración 184: x = 3.41412043838602e+156, -4.85633388785658e+156, -1.46322680762254e+156, error = Inf
## Iteración 185: x = -2.43449358519385e+157, 3.46288712070011e+157, 1.04337745004485e+157, error = Inf
## Iteración 186: x = 1.73595487418487e+158, -2.46926745370427e+158, -7.43997100915335e+157, error = Inf
## Iteración 187: x = -1.23785059165619e+159, 1.76075094142029e+159, 5.30519119716824e+158, error = Inf
## Iteración 188: x = 8.82669308000882e+159, -1.25553182687844e+160, -3.78295205772262e+159, error = Inf
## Iteración 189: x = -6.29401571147951e+160, 8.95277197646518e+160, 2.69749491319567e+160, error = Inf
## Iteración 190: x = 4.4880493084887e+161, -6.38391829998833e+161, -1.92349220854232e+161, error = Inf
## Iteración 191: x = -3.20027586853998e+162, 4.55215579762911e+162, 1.37157710957265e+162, error = Inf
## Iteración 192: x = 2.28200826909847e+163, -3.24598803347945e+163, -9.78025155980278e+162, error = Inf
## Iteración 193: x = -1.62722276267617e+164, 2.31460406481226e+164, 6.9739659491494e+163, error = Inf
## Iteración 194: x = 1.16031740787739e+165, -1.6504657199608e+165, -4.97289878069257e+164, error = Inf
## Iteración 195: x = -8.27383022061416e+165, 1.17689117305128e+166, 3.5460055959633e+165, error = Inf
## Iteración 196: x = 5.89978794206586e+166, -8.39201212348292e+166, -2.52853642159749e+166, error = Inf
## Iteración 197: x = -4.20693884629407e+167, 5.98405945195295e+167, 1.80301363376744e+167, error = Inf
## Iteración 198: x = 2.99982552415803e+168, -4.26703000416999e+168, -1.28566792067353e+168, error = Inf
## Iteración 199: x = -2.13907392150753e+169, 3.04267449243912e+169, 9.16766224834597e+168, error = Inf
## Iteración 200: x = 1.52530112332242e+170, -2.16962806869137e+170, -6.53714927034404e+169, error = Inf
## 
## Resultado final x:
## [1]  1.525301e+170 -2.169628e+170 -6.537149e+169
## 
## Chequeando residuo (Ax-b):
##                [,1]
## [1,] -1.240171e+171
## [2,]  1.764051e+171
## [3,] -1.063027e+171

7.7.3 (3x3)

A <- matrix(c(8,2,3,
              2,5,1,
             -3,1,6),3,byrow=TRUE)
b <- c(51,23,20)
cat("\n=== Ejercicio 7.7.3 ===\n")
## 
## === Ejercicio 7.7.3 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Iteración 1: x = 6.375, 4.6, 3.33333, error = 8.538836929647
## Iteración 2: x = 3.975, 1.38333, 5.75417, error = 4.686937003227
## Iteración 3: x = 3.87135, 1.85917, 5.09028, error = 0.823351854719
## Iteración 4: x = 4.00135, 2.0334, 4.95915, error = 0.253875754341
## Iteración 5: x = 4.00697, 2.00763, 4.99511, error = 0.044598225464
## Iteración 6: x = 3.99993, 1.99819, 5.00221, error = 0.013751603360
## Iteración 7: x = 3.99962, 1.99959, 5.00026, error = 0.002415737213
## Iteración 8: x = 4, 2.0001, 4.99988, error = 0.000744878515
## Iteración 9: x = 4.00002, 2.00002, 4.99999, error = 0.000130852432
## Iteración 10: x = 4, 1.99999, 5.00001, error = 0.000040347586
## Iteración 11: x = 4, 2, 5, error = 0.000007087840
## Iteración 12: x = 4, 2, 5, error = 0.000002185494
## Iteración 13: x = 4, 2, 5, error = 0.000000383925
## Iteración 14: x = 4, 2, 5, error = 0.000000118381
## Iteración 15: x = 4, 2, 5, error = 0.000000020796
## Iteración 16: x = 4, 2, 5, error = 0.000000006412
## Iteración 17: x = 4, 2, 5, error = 0.000000001126
## Iteración 18: x = 4, 2, 5, error = 0.000000000347
## ¡Convergencia alcanzada en 19 iteraciones!
## 
## Resultado final x:
## [1] 4 2 5
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.7.4 (4x4)

A <- matrix(c(2,-1,1,3,
              2,2,2,2,
             -1,-1,2,2,
              3,1,-1,4),4,byrow=TRUE)
b <- c(10,1,-5,6)
cat("\n=== Ejercicio 7.7.4 ===\n")
## 
## === Ejercicio 7.7.4 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0 0
## Iteración 1: x = 5, 0.5, -2.5, 1.5, error = 5.809475019311
## Iteración 2: x = 4.25, -3.5, -1.25, -3, error = 6.194755846682
## Iteración 3: x = 8.375, 0.5, 0.875, -1.125, error = 6.406783514370
## Iteración 4: x = 6.5, -7.625, 3.0625, -4.6875, error = 9.327797837646
## Iteración 5: x = 6.6875, -4.375, 1.625, -0.70312, error = 5.342219261751
## Iteración 6: x = 3.05469, -7.10938, -0.64062, -2.01562, error = 5.246889191836
## Iteración 7: x = 4.78906, 0.10156, -2.51172, 0.82617, error = 8.159808672364
## Iteración 8: x = 5.06738, -2.60352, -0.88086, -2.74512, error = 4.775847330858
## Iteración 9: x = 8.25635, -0.94141, 1.47705, -1.86987, error = 4.388382043508
## Iteración 10: x = 6.59558, -7.36353, 3.02734, -4.08765, error = 7.164055225240
## Iteración 11: x = 5.93604, -5.03528, 1.20367, -0.84897, error = 4.435148302381
## Iteración 12: x = 3.15398, -5.79074, -1.20065, -1.39229, error = 3.792962037504
## Iteración 13: x = 4.79339, -0.06104, -2.42609, 0.28204, error = 6.310489638916
## Iteración 14: x = 5.75947, -2.14933, -0.41586, -2.68631, error = 4.259860345138
## Iteración 15: x = 8.16272, -2.1573, 1.99137, -2.38623, error = 3.414750957502
## Iteración 16: x = 6.50501, -7.26786, 2.88895, -3.58487, error = 5.577473669260
## Iteración 17: x = 5.29891, -5.30909, 0.70345, -0.83956, error = 4.195789473225
## Iteración 18: x = 3.25307, -4.6628, -1.66553, -0.97105, error = 3.198827622464
## Iteración 19: x = 4.95794, -0.11649, -2.23382, -0.19049, error = 4.950522893611
## Iteración 20: x = 6.34439, -2.03363, 0.11121, -2.74778, error = 4.199594407680
## Iteración 21: x = 8.04926, -3.20782, 2.40316, -2.72208, error = 3.088525593336
## Iteración 22: x = 6.27764, -7.23033, 2.6428, -3.1342, error = 4.421148105351
## Iteración 23: x = 4.76473, -5.28624, 0.15785, -0.73994, error = 4.239792635037
## Iteración 24: x = 3.38787, -3.68263, -2.02082, -0.71252, error = 3.035561961182
## Iteración 25: x = 5.23787, -0.15453, -1.93486, -0.62545, error = 3.985596596864
## Iteración 26: x = 6.82834, -2.17757, 0.66712, -2.87349, error = 4.294906533327
## Iteración 27: x = 7.88789, -4.12197, 2.69887, -2.91008, error = 3.005444801874
## Iteración 28: x = 5.9547, -7.17668, 2.29304, -2.71071, error = 3.643205025395
## Iteración 29: x = 4.3312, -5.03703, -0.40028, -0.59859, error = 4.350730485993
## Iteración 30: x = 3.57952, -2.83232, -2.25432, -0.58921, error = 2.977135739588
## Iteración 31: x = 5.59482, -0.23598, -1.53719, -1.04014, error = 3.394116659168
## Iteración 32: x = 7.21081, -2.51749, 1.21956, -3.02142, error = 4.397933904762
## Iteración 33: x = 7.6636, -4.90895, 2.86808, -2.97385, error = 2.940065738223
## Iteración 34: x = 5.57226, -7.05783, 1.85117, -2.30344, error = 3.236500876509
## Iteración 35: x = 4.00066, -4.61998, -0.93934, -0.45194, error = 4.430352877481
## Iteración 36: x = 3.83759, -2.10938, -2.35772, -0.58034, error = 2.891020676926
## Iteración 37: x = 5.99468, -0.39954, -1.05556, -1.44028, error = 3.164127436711
## Iteración 38: x = 7.48843, -2.99884, 1.73785, -3.16001, error = 4.443903470112
## Iteración 39: x = 7.37167, -5.56626, 2.90481, -2.93215, error = 2.831783379180
## Iteración 40: x = 5.16269, -6.84433, 1.33485, -1.91099, error = 3.165531406963
## Iteración 41: x = 3.77689, -4.08655, -1.42983, -0.32722, error = 4.435941711733
## Iteración 42: x = 4.16247, -1.51984, -2.32761, -0.66849, error = 2.767521230260
## Iteración 43: x = 6.40662, -0.66637, -0.51019, -1.8238, error = 3.225266890776
## Iteración 44: x = 7.65761, -3.57263, 2.19392, -3.26592, error = 4.404912303937
## Iteración 45: x = 7.01561, -6.08561, 2.80841, -2.80157, error = 2.705633319706
## Iteración 46: x = 4.75534, -6.52245, 0.76657, -1.5382, error = 3.326384977831
## Iteración 47: x = 3.66279, -3.48371, -1.84535, -0.24425, error = 4.350173722317
## Iteración 48: x = 4.5472, -1.07319, -2.16621, -0.83751, error = 2.654749686344
## Iteración 49: x = 6.80277, -1.04349, 0.07451, -2.18366, error = 3.452736946034
## Iteración 50: x = 7.71648, -4.19362, 2.56329, -3.32257, error = 4.271928225399
## Iteración 51: x = 6.6054, -6.4572, 2.584, -2.59813, error = 2.623647295947
## Iteración 52: x = 4.3766, -6.09127, 0.17223, -1.19375, error = 3.590320861347
## Iteración 53: x = 3.65887, -2.85508, -2.16359, -0.21657, error = 4.171214481139
## Iteración 54: x = 4.97911, -0.77871, -1.88153, -1.07128, error = 2.619999720068
## Iteración 55: x = 7.15833, -1.5263, 0.67148, -2.51004, error = 3.727703239441
## Iteración 56: x = 7.66617, -4.81978, 2.82606, -3.31931, error = 4.049939323419
## Iteración 57: x = 6.15604, -6.67292, 2.2425, -2.33817, error = 2.649109461333
## Iteración 58: x = 4.04954, -5.56038, -0.42027, -0.88818, error = 3.855893435186
## Iteración 59: x = 3.76221, -2.2411, -2.36724, -0.25213, error = 3.910936057283
## Iteración 60: x = 5.44127, -0.64284, -1.48731, -1.3532, error = 2.712979284811
## Iteración 61: x = 7.45203, -2.10076, 1.25241, -2.79207, error = 3.968008852585
## Iteración 62: x = 7.51152, -5.41237, 2.9677, -3.25073, error = 3.758041283180
## Iteración 63: x = 5.68606, -6.72849, 1.8003, -2.03862, error = 2.810071261329
## Iteración 64: x = 3.79353, -4.94774, -0.98259, -0.63235, error = 4.058921749163
## Iteración 65: x = 3.96595, -1.67859, -2.44476, -0.35386, error = 3.596180298728
## Iteración 66: x = 5.91388, -0.66732, -1.00246, -1.666, error = 2.935819093843
## Iteración 67: x = 7.66657, -2.74542, 1.78928, -3.01919, error = 4.124964441926
## Iteración 68: x = 7.26144, -5.93665, 2.97977, -3.11625, error = 3.431440754183
## Iteración 69: x = 5.21617, -6.62496, 1.27865, -1.71698, error = 3.083616847755
## Iteración 70: x = 3.62366, -4.27784, -1.48742, -0.43623, error = 4.163709922839
## Iteración 71: x = 4.25913, -1.20002, -2.39086, -0.52014, error = 3.271091965283
## Iteración 72: x = 6.37563, -0.84812, -0.4503, -1.99206, error = 3.245879882971
## Iteración 73: x = 7.78918, -3.43327, 2.25581, -3.18227, error = 4.173821135398
## Iteración 74: x = 6.92886, -6.36272, 2.86022, -2.91961, error = 3.123471347796
## Iteración 75: x = 4.76795, -6.36948, 0.70268, -1.39091, error = 3.414893882037
## Iteración 76: x = 3.55029, -3.57972, -1.90985, -0.30792, error = 4.154956181677
## Iteración 77: x = 4.62695, -0.83252, -2.20679, -0.74525, error = 2.997618744107
## Iteración 78: x = 6.80501, -1.1749, 0.14247, -2.31378, error = 3.583364898730
## Iteración 79: x = 7.81198, -4.1337, 2.62884, -3.27442, error = 4.107717818739
## Iteración 80: x = 6.53036, -6.6664, 2.61356, -2.66835, error = 2.902529406699
## Iteración 81: x = 4.36255, -5.97557, 0.10033, -1.07778, error = 3.744714728007
## Iteración 82: x = 3.57872, -2.8851, -2.22873, -0.25294, error = 4.033638693474
## Iteración 83: x = 5.05122, -0.59705, -1.90025, -1.01995, error = 2.845984828926
## Iteración 84: x = 7.18152, -1.63102, 0.74703, -2.61421, error = 3.893207530888
## Iteración 85: x = 7.7323, -4.81433, 2.88946, -3.29163, error = 3.935196639733
## Iteración 86: x = 6.08554, -6.83014, 2.25061, -2.37327, error = 2.833155859216
## Iteración 87: x = 4.01954, -5.46288, -0.49902, -0.79397, error = 4.023983423448
## Iteración 88: x = 3.70903, -2.22655, -2.4277, -0.27369, error = 3.815855825331
## Iteración 89: x = 5.51111, -0.50764, -1.48507, -1.33206, error = 2.865457627668
## Iteración 90: x = 7.4868, -2.19398, 1.3338, -2.87769, error = 4.133049741012
## Iteración 91: x = 7.55265, -5.44291, 3.0241, -3.23316, error = 3.680128312350
## Iteración 92: x = 5.61623, -6.84359, 1.78803, -2.04773, error = 2.940191857407
## Iteración 93: x = 3.75579, -4.85653, -1.06595, -0.55427, error = 4.217258840762
## Iteración 94: x = 3.93611, -1.63557, -2.4961, -0.3692, error = 3.533644579953
## Iteración 95: x = 5.98406, -0.57082, -0.98053, -1.66722, error = 3.051160245938
## Iteración 96: x = 7.70568, -2.83631, 1.87384, -3.09047, error = 4.274286953149
## Iteración 97: x = 7.28064, -5.98905, 3.02516, -3.10173, error = 3.383207417366
## Iteración 98: x = 5.14549, -6.70407, 1.24752, -1.70693, error = 3.189921186418
## Iteración 99: x = 3.58459, -4.18608, -1.57237, -0.37122, error = 4.302620604569
## Iteración 100: x = 4.24997, -1.14101, -2.42953, -0.53502, error = 3.236777475760
## Iteración 101: x = 6.44678, -0.78542, -0.4105, -2.00961, error = 3.347133786717
## Iteración 102: x = 7.82695, -3.52667, 2.34028, -3.24136, error = 4.301553312998
## Iteración 103: x = 6.92856, -6.42588, 2.89149, -2.90347, error = 3.103300424680
## Iteración 104: x = 4.69652, -6.41658, 0.65481, -1.36708, error = 3.513591949228
## Iteración 105: x = 3.51492, -3.48426, -1.99295, -0.25454, error = 4.271193827955
## Iteración 106: x = 4.63616, -0.76742, -2.23013, -0.76336, error = 2.992249241441
## Iteración 107: x = 6.8764, -1.14267, 0.19773, -2.3428, error = 3.680841312813
## Iteración 108: x = 7.844, -4.23133, 2.70966, -3.3222, error = 4.212486981013
## Iteración 109: x = 6.5128, -6.73146, 2.62853, -2.64775, error = 2.912764557149
## Iteración 110: x = 4.29163, -5.99358, 0.03842, -1.0446, error = 3.841460007515
## Iteración 111: x = 3.5509, -2.78545, -2.30637, -0.21072, error = 4.127248471026
## Iteración 112: x = 5.07655, -0.53381, -1.90655, -1.04341, error = 2.872400347457
## Iteración 113: x = 7.25148, -1.62659, 0.81478, -2.6506, error = 3.989133593677
## Iteración 114: x = 7.75521, -4.91567, 2.96304, -3.32827, error = 4.018214983479
## Iteración 115: x = 6.05305, -6.88998, 2.24804, -2.34673, error = 2.875743582282
## Iteración 116: x = 3.95108, -5.45436, -0.57174, -0.75528, error = 4.118629786482
## Iteración 117: x = 3.69161, -2.12406, -2.49636, -0.24265, error = 3.889110085947
## Iteración 118: x = 5.55013, -0.4526, -1.47357, -1.36178, error = 2.923426927209
## Iteración 119: x = 7.55316, -2.21478, 1.41055, -2.91784, error = 4.225737886027
## Iteración 120: x = 7.5641, -5.54587, 3.08703, -3.25854, error = 3.744722904764
## Iteración 121: x = 5.57136, -6.89259, 1.76765, -2.01485, error = 3.012009690485
## Iteración 122: x = 3.69215, -4.82416, -1.14577, -0.51346, error = 4.307206075187
## Iteración 123: x = 3.93099, -1.53293, -2.55255, -0.34951, error = 3.590988173456
## Iteración 124: x = 6.03408, -0.52892, -0.95146, -1.70315, error = 3.134780662441
## Iteración 125: x = 7.76598, -2.87948, 1.95573, -3.13119, error = 4.360690729784
## Iteración 126: x = 7.27919, -6.09052, 3.07445, -3.11569, error = 3.435039086611
## Iteración 127: x = 5.09105, -6.73795, 1.21002, -1.66815, error = 3.283071178237
## Iteración 128: x = 3.52824, -4.13292, -1.6553, -0.33129, error = 4.384722320428
## Iteración 129: x = 4.25813, -1.04165, -2.47105, -0.52677, error = 3.285174632269
## Iteración 130: x = 6.50486, -0.76031, -0.36498, -2.05095, error = 3.447543003797
## Iteración 131: x = 7.87876, -3.58893, 2.42322, -3.27981, error = 4.378688514575
## Iteración 132: x = 6.91365, -6.52217, 2.92473, -2.90603, error = 3.150641989558
## Iteración 133: x = 4.6356, -6.43234, 0.60177, -1.32351, error = 3.619126842322
## Iteración 134: x = 3.46821, -3.41386, -2.07486, -0.21817, error = 4.342834017646
## Iteración 135: x = 4.65776, -0.67518, -2.25466, -0.76641, error = 3.041101077701
## Iteración 136: x = 6.93935, -1.13669, 0.2577, -2.38819, error = 3.789559239137
## Iteración 137: x = 7.88509, -4.30886, 2.78952, -3.35592, error = 4.278276933787
## Iteración 138: x = 6.48468, -6.81869, 2.64403, -2.63922, error = 2.965663917234
## Iteración 139: x = 4.22747, -5.98949, -0.02778, -0.99783, error = 3.951616003945
## Iteración 140: x = 3.5159, -2.70186, -2.38317, -0.18018, error = 4.187042035636
## Iteración 141: x = 5.11092, -0.45255, -1.9128, -1.05725, error = 2.931556608738
## Iteración 142: x = 7.31601, -1.64087, 0.88644, -2.69826, error = 4.099167077873
## Iteración 143: x = 7.78373, -5.00419, 3.03583, -3.35518, error = 4.072111562382
## Iteración 144: x = 6.01276, -6.96438, 2.24495, -2.32779, error = 2.942735825301
## Iteración 145: x = 3.88703, -5.42991, -0.64802, -0.70724, error = 4.227147476678
## Iteración 146: x = 3.66991, -2.03177, -2.56421, -0.2198, error = 3.937493050043
## Iteración 147: x = 5.59591, -0.38591, -1.46114, -1.38554, error = 2.999014954296
## Iteración 148: x = 7.61592, -2.24924, 1.49054, -2.96574, error = 4.331500562801
## Iteración 149: x = 7.57872, -5.64072, 3.14908, -3.277, error = 3.788299595683
## Iteración 150: x = 5.52059, -6.95081, 1.746, -1.98659, error = 3.096131659575
## Iteración 151: x = 3.63148, -4.78, -1.22852, -0.46624, error = 4.409121771070
## Iteración 152: x = 3.92362, -1.43672, -2.60802, -0.33574, error = 3.630828077630
## Iteración 153: x = 6.08926, -0.47987, -0.92081, -1.73554, error = 3.226711278673
## Iteración 154: x = 7.82378, -2.93291, 2.04024, -3.17718, error = 4.457814571159
## Iteración 155: x = 7.2792, -6.18684, 3.12262, -3.12455, error = 3.472601178069
## Iteración 156: x = 5.0321, -6.77726, 1.17073, -1.63203, error = 3.381646482223
## Iteración 157: x = 3.47405, -4.07079, -1.74055, -0.28708, error = 4.476262413679
## Iteración 158: x = 4.26549, -0.94643, -2.51129, -0.52298, error = 3.322306067617
## Iteración 159: x = 6.5669, -0.73122, -0.31749, -2.09034, error = 3.551365205296
## Iteración 160: x = 7.92864, -3.65908, 2.50818, -3.32174, error = 4.464017184224
## Iteración 161: x = 6.89899, -6.61507, 2.95652, -2.90466, error = 3.189519893251
## Iteración 162: x = 4.5712, -6.45085, 0.54662, -1.28134, error = 3.726710592797
## Iteración 163: x = 3.42328, -3.33648, -2.15848, -0.17903, error = 4.421503934238
## Iteración 164: x = 4.67955, -0.58576, -2.27757, -0.77296, error = 3.084084590831
## Iteración 165: x = 7.00534, -1.12902, 0.31985, -2.43261, error = 3.899420595806
## Iteración 166: x = 7.92448, -4.39258, 2.87077, -3.39179, error = 4.350041986831
## Iteración 167: x = 6.45601, -6.90347, 2.65774, -2.62752, error = 3.015040240550
## Iteración 168: x = 4.16068, -5.98622, -0.09621, -0.9517, error = 4.062321353801
## Iteración 169: x = 3.48255, -2.61277, -2.46107, -0.14801, error = 4.251883069475
## Iteración 170: x = 5.14616, -0.37347, -1.9171, -1.07398, error = 2.989214914447
## Iteración 171: x = 7.38279, -1.65507, 0.96033, -2.74553, error = 4.209359350413
## Iteración 172: x = 7.81059, -5.09759, 3.10939, -3.38324, error = 4.130267141989
## Iteración 173: x = 5.97138, -7.03674, 2.23974, -2.3062, error = 3.009868381556
## Iteración 174: x = 3.82106, -5.40492, -0.72648, -0.65941, error = 4.335561684386
## Iteración 175: x = 3.6499, -1.93517, -2.63252, -0.19618, error = 3.989494987600
## Iteración 176: x = 5.64295, -0.32119, -1.44645, -1.41176, error = 3.075965637849
## Iteración 177: x = 7.68027, -2.28474, 1.57264, -3.01353, error = 4.436975612487
## Iteración 178: x = 7.5916, -5.73938, 3.21129, -3.29586, error = 3.835011548033
## Iteración 179: x = 5.46845, -7.00704, 1.72197, -1.95603, error = 3.182445357208
## Iteración 180: x = 3.56955, -4.73438, -1.31326, -0.41908, error = 4.510612086376
## Iteración 181: x = 3.91807, -1.3372, -2.66333, -0.32188, error = 3.673482296271
## Iteración 182: x = 6.14589, -0.43285, -0.88769, -1.77008, error = 3.321331230265
## Iteración 183: x = 7.88254, -2.98812, 2.1266, -3.22312, error = 4.554403181783
## Iteración 184: x = 7.27733, -6.28602, 3.17034, -3.13323, error = 3.512822411348
## Iteración 185: x = 4.97166, -6.81444, 1.12888, -1.59391, error = 3.483153241638
## Iteración 186: x = 3.4192, -4.00664, -1.82748, -0.24292, error = 4.567176276652
## Iteración 187: x = 4.2748, -0.8488, -2.5508, -0.51961, error = 3.362102215061
## Iteración 188: x = 6.63042, -0.70439, -0.26739, -2.1316, error = 3.658175786789
## Iteración 189: x = 7.9789, -3.73143, 2.59461, -3.36356, error = 4.548645178611
## Iteración 190: x = 6.88232, -6.70995, 2.9873, -2.90267, error = 3.231208751459
## Iteración 191: x = 4.50537, -6.46696, 0.48885, -1.23743, error = 3.837210371164
## Iteración 192: x = 3.37824, -3.25679, -2.24336, -0.14008, error = 4.499417938442
## Iteración 193: x = 4.7034, -0.4948, -2.2992, -0.78032, error = 3.130124096739
## Iteración 194: x = 7.07268, -1.12388, 0.38462, -2.47865, error = 4.012037382195
## Iteración 195: x = 7.96372, -4.47865, 2.95305, -3.42739, error = 4.421021534687
## Iteración 196: x = 6.42523, -6.98939, 2.66992, -2.61487, error = 3.067752411372
## Iteración 197: x = 4.09264, -5.98028, -0.16721, -0.90409, error = 4.175562384779
## Iteración 198: x = 3.44961, -2.52134, -2.53973, -0.11622, error = 4.315944145656
## Iteración 199: x = 5.18352, -0.29366, -1.91965, -1.0918, error = 3.050450470820
## Iteración 200: x = 7.4507, -1.67207, 1.03673, -2.79414, error = 4.321829054881
## 
## Resultado final x:
## [1]  7.450695 -1.672067  1.036729 -2.794135
## 
## Chequeando residuo (Ax-b):
##            [,1]
## [1,] -0.7722206
## [2,]  7.0424425
## [3,] -4.2934419
## [4,]  2.4667479

7.7.5 (4x4)

A <- matrix(c(3,1,1,-1,
              0,2,1,4,
              1,1,-1,9,
              2,4,6,3),4,byrow=TRUE)
b <- c(5,0,1,0)
cat("\n=== Ejercicio 7.7.5 ===\n")
## 
## === Ejercicio 7.7.5 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0 0
## Iteración 1: x = 1.66667, 0, -1, 0, error = 1.943650631615
## Iteración 2: x = 2, 0.5, 0.66667, 0.88889, error = 1.982173641657
## Iteración 3: x = 1.57407, -2.11111, 9.5, -3.33333, error = 10.141708554309
## Iteración 4: x = -1.90741, 1.91667, -31.53704, -17.23457, error = 43.653481400961
## Iteración 5: x = 5.79527, 50.23765, -156.10185, 61.79012, error = 155.420539127040
## Iteración 6: x = 57.55144, -45.52932, 611.14403, 241.35665, error = 795.462382016173
## Iteración 7: x = -106.41935, -788.28532, 2183.232, -1199.94993, error = 2264.375881353579
## Iteración 8: x = -863.29887, 1308.28386, -11695.25406, -3244.47066, error = 14204.256725252910
## Iteración 9: x = 2382.49984, 12336.56835, -28756.25094, 22221.66221, error = 32737.742834983601
## Iteración 10: x = 12882.11493, -30065.19895, 214713.02807, 39475.41086, error = 247957.926778482069
## Iteración 11: x = -48389.13942, -186307.33575, 338094.61371, -397927.20084, error = 484468.608183312404
## Iteración 12: x = -183236.49293, 626807.09482, -3816042.28269, -395520.02014, error = 4235114.878548507579
## Iteración 13: x = 931240.05591, 2699061.18162, -3116110.57936, 6918499.43425, error = 7714990.599260735326
## Iteración 14: x = 2445184.61066, -12278943.57882, 65896795.14577, 2012646.21261, error = 70805940.479427099228
## Iteración 15: x = -17201733.45145, -36973689.9981, 8280055.94531, -117051788.59356, error = 135984779.155085533857
## Iteración 16: x = -29452716.51359, 229963549.21446, -1107641521.79157, 44205963.74115, error = 1158745272.530256509781
## Iteración 17: x = 307294647.10608, 465408833.41349, 598364505.37118, 1928300122.30625, error = 2574703989.162859439850
## Iteración 18: x = 288175596.17386, -4155782497.29809, 18127404580.2758, -2022137220.03108, error = 18553408743.314483642578
## Iteración 19: x = -5331253099.33627, -5019427850.07575, -22066841882.4039, -30905882894.9368, error = 49821401777.494918823242
## Iteración 20: x = -1273204385.81902, 72845186731.0755, -288503627004.843, 54380422964.4664, error = 290416391405.094116210937
## Iteración 21: x = 90012954414.4113, 35490967573.4886, 560995789024.454, 480729141292.131, error = 955589340632.854003906250
## Iteración 22: x = -38585871766.9372, -1241956177096.49, 4452066193616.08, -1229321504423.17, error = 4439944928703.603515625000
## Iteración 23: x = -1479810506979.25, 232609912038.295, -12344435588672.9, -7222466903258.88, error = 17952485551989.527343750000
## Iteración 24: x = 1629786257793.58, 20617151600854.2, -66249402724271.9, 25365264965947.6, error = 66278992766727.101562500000
## Iteración 25: x = 23665838696456.8, -17605828569759.3, 250534322552176, 103922745808876, error = 329347521953047.937500000000
## Iteración 26: x = -43001916057845.2, -333112652893839, 941364722406578, -493371432808977, error = 968501999426338.125000000000
## Iteración 27: x = -367207834107237, 516060504414664, -4816457464232474, -1409911296916141, error = 5900742850170819.000000000000
## Iteración 28: x = 963495220967225, 5228051325948518, -12540349001937840, 9189639478650220, error = 13999378745253296.000000000000
## Iteración 29: x = 5500645718213183, -12109104456331520, 88898301854767728, 17467632755299506, error = 103341607136576752.000000000000
## Iteración 30: x = -19773854881045564, -79384416437982880, 150600236059577216, -165318228246568864, error = 205870268979227392.000000000000
## Iteración 31: x = -78844682622721072, 255336338463349120, -1587022325538148352, -182172013614480224, error = 1770633661463170560.000000000000
## Iteración 32: x = 383171324486772992, 1157855189998034688, -1463056466689693952, 2886159321540312064, error = 3233886792182700032.000000000000
## Iteración 33: x = 1063786866077323776, -5040790409735777280, 27516460408347615232, 1126858463724159872, error = 29695016124013789184.000000000000
## Iteración 34: x = -7116270511629225984, -16011947131622127616, 6164722629858985984, -49021058181099069440, error = 56195995128623185920.000000000000
## Iteración 35: x = -13057944559778643968, 94959755047268646912, -4.64317741273143e+20, 1.3763997923531e+19, error = 487489214532256137206.000000000000
## Iteración 36: x = 1.27707328049802e+20, 2.04630874789509e+20, 2.05777791799269e+20, 8.1072777218978e+20, error = 1056419375728536715384.000000000000
## Iteración 37: x = 1.33439701867e+20, -1.72434444027919e+21, 7.62888815254733e+21, -7.69534968684419e+20, error = 7830758353077590294408.000000000000
## Iteración 38: x = -2.22469289365085e+21, -2.27537413890483e+21, -8.51671945657196e+21, -1.30476101859671e+22, error = 20427829037264640410600.000000000000
## Iteración 39: x = -7.5183886349676e+20, 3.03535801002201e+22, -1.21928558706259e+23, 2.15503996941176e+22, error = 122988151963481486138200.000000000000
## Iteración 40: x = 3.77084594333856e+22, 1.78634799648945e+22, 2.23555338483782e+23, 2.0388690318789e+23, error = 392735179058903330502644.000000000000
## Iteración 41: x = -1.25106384202622e+22, -5.1955147561767e+23, 1.89055406808929e+24, -4.9606762320968e+23, error = 1886838068251713725282208.000000000000
## Iteración 42: x = -6.22356738560432e+23, 4.68582123747163e+22, -4.99667072292505e+24, -3.08003240974151e+24, error = 7402936683540307398404404.000000000000
## Iteración 43: x = 6.23260033602943e+23, 8.65840018094554e+24, -2.82957902138593e+25, 1.03457683217241e+25, error = 28263250176747268164824886.000000000000
## Iteración 44: x = 9.99438611821261e+24, -6.54364153651857e+24, 1.02393575110065e+26, 4.46315401640559e+25, error = 136286992908596530920422226.000000000000
## Iteración 45: x = -1.70727978031637e+25, -1.40459867883144e+26, 4.05134606058197e+26, -2.02725218916914e+26, error = 414130035383734208244482240.000000000000
## Iteración 46: x = -1.55799985697322e+26, 2.0288313480473e+26, -1.98205963593854e+27, -6.11607523070092e+26, error = 2450104229992618730882624648.000000000000
## Iteración 47: x = 3.89189659354572e+26, 2.21424486410945e+27, -5.45738455852342e+27, 3.79747508260232e+27, error = 5988362251944021735842466204.000000000000
## Iteración 48: x = 2.34687159233876e+27, -4.86625788594292e+27, 3.67807102668849e+28, 7.70298285866452e+27, error = 43049688537935985288488608266.000000000000
## Iteración 49: x = -8.07048984075914e+27, -3.37963208507715e+28, 6.68074594343765e+28, -6.8637657747405e+28, error = 87606900619125169232220644268.000000000000
## Iteración 50: x = -3.38829321103367e+28, 1.03871585777622e+29, -6.59605730418176e+29, -8.3172831173885e+28, error = 739936570490783605366404482628.000000000000
## Iteración 51: x = 1.57520437822223e+29, 4.96148527556858e+29, -6.7856682689768e+29, 1.20330463453975e+30, error = 1358639113982033405786842080268.000000000000
## Iteración 52: x = 4.61907644626856e+29, -2.06732585563065e+30, 1.14834106762368e+31, 5.90588658504733e+29, error = 12448018723433974812068806468822.000000000000
## Iteración 53: x = -2.94183205403381e+30, -6.92288265512787e+30, 3.7098797155388e+30, -2.05183253080506e+31, error = 23263187834296252150440208822226.000000000000
## Iteración 54: x = -5.76844078948719e+30, 3.91817107583319e+31, -1.94529642481617e+32, 3.77197214511542e+30, error = 204994024210667824362484242224440.000000000000
## Iteración 55: x = 5.30399679561337e+31, 8.97208769505779e+31, 6.73610192748835e+31, 3.40662631145117e+32, error = 433698825333102462180688086666406.000000000000
## Iteración 56: x = 6.11935783065519e+31, -7.15005771927676e+32, 3.20872452521277e+33, -2.89709853121293e+32, error = 3303511102771583764068402840026406.000000000000
## Iteración 57: x = -9.27809535468795e+32, -1.0249425563638e+33, -3.26120087171276e+33, -5.50490374005967e+33, error = 8374507143082827083284884860028646.000000000000
## Iteración 58: x = -4.06253437327702e+32, 1.26404079159757e+34, -5.14968857523696e+34, 8.50753150888979e+33, error = 52058077776723613144440884464220280.000000000000
## Iteración 59: x = 1.57880031150946e+34, 8.73337985840523e+33, 8.88019380586561e+34, 8.64107299083234e+34, error = 161338734026107493594640644444622686.000000000000
## Iteración 60: x = -3.70819600291265e+33, -2.17222428845975e+35, 8.0221795214841e+35, -1.99773718005249e+35, error = 801436258634838690240824862888062066.000000000000
## Iteración 61: x = -2.61589747102561e+35, -1.56154006370748e+33, -2.01889408689613e+36, -1.31233386850025e+36, error = 3051143349411723900486660828686466680.000000000000
## Iteración 62: x = 2.36040586153196e+35, 3.63411478044855e+36, -1.20741561036685e+37, 4.21426339194557e+36, error = 12046466276930419734664464022046482468.000000000000
## Iteración 63: x = 4.21810157172183e+36, -2.3914487320569e+36, 4.17985258941119e+37, 1.91454654426368e+37, error = 56368172630027307066202002280600082264.000000000000
## Iteración 64: x = -6.75387057313941e+36, -5.91901938323295e+37, 1.74135841823396e+38, -8.32205211932958e+37, error = 177026670377738127936040082480028260688.000000000000
## Iteración 65: x = -6.60553897281207e+37, 7.93731214748938e+37, -8.14928755145131e+38, -2.64848844821593e+38, error = 1016835329561063922728060464086202842040.000000000000
## Iteración 66: x = 1.56902262949548e+38, 9.37162067215751e+38, -2.37032187164756e+39, 1.56806360814248e+39, error = 2562094416179206981060660686068082662622.000000000000
## Iteración 67: x = 1.00040780419143e+39, -1.95096628046119e+39, 1.52066368034477e+40, 3.38649281170775e+39, error = 17925092691117244981888024826228884842802.000000000000
## Iteración 68: x = -3.28972590375957e+39, -1.43763040251393e+40, 2.95278768291e+40, -2.84789237690747e+40, error = 37326893187627762060802884220464446424288.000000000000
## Iteración 69: x = -1.45434988576785e+40, 4.21939091235993e+40, -2.73976343850571e+41, -3.76941976888412e+40, error = 309073728526354825344082040284064408200868.000000000000
## Iteración 70: x = 6.46960790127102e+40, 2.12376567302968e+41, -3.1159736893365e+41, 5.01389808108129e+41, error = 572073382251335150442462246608800866224060.000000000000
## Iteración 71: x = 2.00203536579604e+41, -8.46980931749432e+41, 4.78958091928884e+42, 2.96895262121536e+41, error = 5215787431388049008428400486864484220628624.000000000000
## Iteración 72: x = -1.21523490847262e+42, -2.98858098388749e+42, 2.02527996392399e+42, -8.58332295396483e+42, error = 9648292704525121688082024600668282466860288.000000000000
## Iteración 73: x = -2.54000731133378e+42, 1.61540059259677e+43, -8.14537224780436e+43, 7.44371322983748e+41, error = 86162308376406599586606228824808042244282444.000000000000
## Iteración 74: x = 2.20146959583532e+43, 3.92381185930543e+43, 2.03133405214876e+43, 1.43062108595686e+44, error = 178175989303445750272064884086862828248400006.000000000000
## Iteración 75: x = 2.78368831603814e+43, -2.96280887452116e+44, 1.34881179191258e+45, -1.07620636472616e+44, error = 1392966932595627537606806488666420000468244066.000000000000
## Iteración 76: x = -3.86717180311028e+44, -4.59164623011058e+44, -1.23702973254528e+45, -2.3211403226626e+45, error = 3432875175943841531422602008042002806280006264.000000000000
## Iteración 77: x = -2.08315322368752e+44, 5.26079551159784e+45, -2.17361447072855e+46, 3.34409041597933e+45, error = 22024039711962535678442804282266264600064806048.000000000000
## Iteración 78: x = 6.60647987055565e+45, 4.17989152168408e+45, 3.5149293933043e+46, 3.65967722806863e+46, error = 66251820861429229352462468040640820020820006606.000000000000
## Iteración 79: x = -9.10804391346932e+44, -9.07681915278941e+46, 3.40157321918417e+47, -8.02760964753686e+46, error = 340236406964716652340208088240486662226806846644.000000000000
## Iteración 80: x = -1.09888408955297e+47, -9.52646800847108e+45, -8.14163864197559e+47, -5.58683185538743e+47, error = 1256903767008113417004820286424028400628666846084.000000000000
## Iteración 81: x = 8.83357155557622e+46, 1.52444830317627e+48, -5.14756354681245e+48, 1.71428862504328e+48, error = 5131970875127490816420060866462446444046688008884.000000000000
## Iteración 82: x = 1.77913462289316e+48, -8.54795476680325e+47, 1.70413816441215e+49, 8.20363887901938e+48, error = 23301943208970599588280646482886446406804062620240.000000000000
## Iteración 83: x = -2.66098242947394e+48, -2.49279685800995e+49, 7.47570890573873e+49, -3.4129125734598e+49, error = 75646534254726728418648420826846446484028808080268.000000000000
## Iteración 84: x = -2.79860820706286e+49, 3.08797069405024e+49, -3.34751082620956e+50, -1.14502898388326e+50, error = 421797040436250106528224042862804868040044446648464.000000000000
## Iteración 85: x = 6.31228257640425e+49, 3.9638133808713e+50, -1.02763246062506e+51, 6.46986610701661e+50, error = 1096286072107388433522484606468202004648480602084684.000000000000
## Iteración 86: x = 4.26079244413197e+50, -7.80156991090792e+50, 6.28238366016612e+51, 1.48467458662458e+51, error = 7460163311422621598420828602686426006880220242284028.000000000000
## Iteración 87: x = -1.33918402748358e+51, -6.11054100333223e+51, 1.30079935329437e+52, -1.18086108284866e+52, error = 15920879794329158242664222664482822606426064224626402.000000000000
## Iteración 88: x = -6.23535445269936e+51, 1.71132248905015e+52, -1.13727222487196e+53, -1.69758097097886e+52, error = 129041972671974601998440684062084284648408802466044406.000000000000
## Iteración 89: x = 2.65460626289685e+52, 9.08152306631751e+52, -1.41904416950296e+53, 2.08793714755522e+53, error = 241396850488777921722222082024868428806826860040628422.000000000000
## Iteración 90: x = 8.66276336808809e+52, -3.46635221035897e+53, 1.99650472609184e+54, 1.45024484597045e+53, error = 2184452533389774923206668048664886480264206060440424242.000000000000
## Iteración 91: x = -5.01615006819634e+53, -1.28830133224001e+54, 1.04521277401839e+54, -3.58858091325641e+54, error = 4009679552539515135246820666482624004644426622826888404.000000000000
## Iteración 92: x = -1.11516411834493e+54, 6.65455543950363e+54, -3.40871445583674e+55, -3.82804338370143e+52, error = 36198792541095775314222622244844246202060666408668248604.000000000000
## Iteración 93: x = 9.13143622834224e+54, 1.71201331468577e+55, 5.19486741662557e+54, 6.00449912762932e+55, error = 73263887008608890498668024408428024668062268082880026028.000000000000
## Iteración 94: x = 1.25766635709366e+55, -1.22687416260899e+56, 5.66656490861838e+56, -3.93042031812896e+55, error = 587083841971441984928604820022680244622600280064204800660.000000000000
## Iteración 95: x = -1.61091092594076e+56, -2.0471983906834e+56, -4.63848581321569e+56, -9.78114202423103e+56, error = 1407193919257467067068442226846080488804264886684622062224.000000000000
## Iteración 96: x = -1.03181927344398e+56, 2.18815269550699e+57, -9.16883875347034e+57, 1.30805100979697e+57, error = 9313033754524722966666822460648026464248840226220680426668.000000000000
## Iteración 97: x = 2.76291235592011e+57, 1.96831735714122e+57, 1.38574298563354e+58, 1.5488928531161e+58, error = 27195020819690612182440802022202624880820088044626228402228.000000000000
## Iteración 98: x = -1.12272894105209e+56, -3.79065719904896e+58, 1.4413158649351e+59, -3.21812244261391e+58, error = 144367838735665924120686622806406428264244420480860262248688.000000000000
## Iteración 99: x = -4.61354129763865e+58, -7.70334439447678e+57, -3.27649864719847e+59, -2.3764622840363e+59, error = 517517120440185168000482268202068642084626684860624802000642.000000000000
## Iteración 100: x = 3.2568993570231e+58, 6.39117389167184e+59, -2.19265481300354e+60, 6.96327797283253e+59, error = 2185205341096234871682280200028644886862084408488064820448444.000000000000
## Iteración 101: x = 7.49955073706535e+59, -2.96328188064739e+59, 6.93863655828669e+60, 3.51144044473734e+60, error = 9627826470247137591246004886428066240222068428004040220682406.000000000000
## Iteración 102: x = -1.0436226418282e+60, -1.0492199168618e+61, 3.20565908882779e+61, -1.39821389149581e+61, error = 32312685660762325712026002660066428602846640864268428264440428.000000000000
## Iteración 103: x = -1.18488435448726e+61, 1.19359823857773e+61, -1.37375072045069e+62, -4.94278344571795e+61, error = 174880707522103911200466480848680608628882866668800684664888602.000000000000
## Iteración 104: x = 2.53370850673708e+61, 1.67543204936894e+62, -4.44763371273711e+62, 2.66734729939017e+62, error = 469087129033705022848004460680066084242202226862620866880224820.000000000000
## Iteración 105: x = 1.81318298758612e+62, -3.11087774241178e+62, 2.59349285945542e+63, 6.4924441258665e+62, error = 3103342123282109343242408646626880460844424082446420808000846620.000000000000
## Iteración 106: x = -5.44386890875863e+62, -2.59523525490101e+63, 5.71343023779729e+63, -4.89308088576167e+63, error = 6796716611214094314846486424442662464626020424064244640080284640.000000000000
## Iteración 107: x = -2.67042528955265e+63, 6.9294466526247e+63, -4.71773501176319e+64, -7.60362220847599e+63, error = 53851845702636702272266686222082880680080286022064822264222840864.000000000000
## Iteración 108: x = 1.08814270855104e+64, 3.87959194757679e+64, -6.41735785132119e+64, 8.68957215581326e+64, error = 102069204684753075392026468480480228866604642040460400644284440628.000000000000
## Iteración 109: x = 3.74244601985255e+64, -1.41704653859659e+65, 8.31738840584472e+65, 6.93649796683929e+64, error = 914467812001015813042622244480422248868042442482820600848840284822.000000000000
## Iteración 110: x = -2.06889735685473e+65, -5.54599379629022e+65, 5.20004623354402e+65, -1.49948778282175e+66, error = 1669924756820975538986862024448024044246008664022008446028620240620.000000000000
## Iteración 111: x = -4.8829767551571e+65, 2.7389732539663e+66, -1.42568791607102e+67, -1.62616916746459e+65, error = 15200997638368371827202084622228488246666624620680288282060668262682.000000000000
## Iteración 112: x = 3.78509632999916e+66, 7.45367341384803e+66, 7.87123327732453e+65, 2.51873257664759e+67, error = 30156788602881550098642680688804422688488600608686624424422640442066.000000000000
## Iteración 113: x = 5.64884300829846e+66, -5.0768213196818e+67, 2.3792470164213e+68, -1.40358754272617e+67, error = 247317512911818714522608002422402444604422040862088048846882062080000.000000000000
## Iteración 114: x = -6.7064121290858e+67, -9.08905999665416e+67, -1.71442249033875e+68, -4.11924347694035e+68, error = 576882585770993356648460082266688840626644480644640840208604802426088.000000000000
## Iteración 115: x = -4.98638328978729e+67, 9.09569819905008e+68, -3.86527385050372e+69, 5.08781378883711e+68, error = 3936153939649803891642884082804048244684060086246608062208044060604206.000000000000
## Iteración 116: x = 1.15482846982747e+69, 9.15074167484437e+68, 5.43873839696053e+69, 6.55103049639934e+69, error = 11159065020922278120068006842262206448242408486260008202088404086004204.000000000000
## Iteración 117: x = 6.57393106514566e+67, -1.58214301912789e+70, 6.1029177104906e+70, -1.2867461330452e+70, error = 61226394585332801652284802260668200886466866404628880862600420480206080.000000000000
## Iteración 118: x = -1.93584027480263e+70, -4.77966589154906e+69, -1.31562842854695e+71, -1.01006940161874e+71, error = 212977632004773280224626260068406824488642848882020422644828288228208664.000000000000
## Iteración 119: x = 1.17785228614566e+70, 2.67795301751096e+71, -9.33200530096444e+71, 2.82404175396807e+71, error = 929996605511037402428028266228684460860426480680868464002802042802260660.000000000000
## Iteración 120: x = 3.15936467914052e+71, -9.8208085745391e+70, 2.82121140318381e+72, 1.50148830928379e+72, error = 3975958453687573522426482402482868066842468088802004848068824888244204486.000000000000
## Iteración 121: x = -4.07171669384877e+71, -4.41358232015948e+72, 1.37311231657228e+73, -5.72210300398314e+72, error = 13796803480834394220820406080080668606662666080426440020062440628262008866.000000000000
## Iteración 122: x = -5.01321461651547e+72, 4.57864442510489e+72, -5.63196810253926e+73, -2.13060221249763e+73, error = 72471025082171274498086462048040460266860420402682880668486222448880026602.000000000000
## Iteración 123: x = 1.01450048251038e+73, 7.07718847626489e+73, -1.92188769316197e+74, 1.09876645894989e+74, error = 200700319443779252042882628026442062862608804826288284028660404046282024226.000000000000
## Iteración 124: x = 7.70978434828458e+73, -1.23658907131879e+74, 1.06980670264265e+75, 2.8325168906546e+74, error = 1290340068462599983528008680644622262006266864482862264202660686882666242682.000000000000
## Iteración 125: x = -2.20965368815105e+74, -1.10140672945225e+75, 2.50270413794011e+75, -2.0261334247647e+75, error = 2903667878156857767042842002020408662020466044622284044246060620404088082822.000000000000
## Iteración 126: x = -1.14247694441752e+75, 2.80091478055934e+75, -1.95575729211496e+76, -3.38955572406715e+75, error = 22463126252627983884208462802860282486282808006644240262640242468666404684024.000000000000
## Iteración 127: x = 4.45570080550771e+75, 1.65578979087091e+76, -2.88475636804625e+76, 3.61422440978318e+76, error = 43239580298318877804882606202480808820284828466622024206624026404002628240200.000000000000
## Iteración 128: x = 1.61439699565284e+76, -5.78607063554324e+76, 3.46293795594703e+77, 3.26474629456411e+76, error = 382646046929130482646846680626226668260448800028288864886482642226408668086840.000000000000
## Iteración 129: x = -8.52618754312099e+76, -2.38441823688634e+77, 2.52110430111866e+77, -6.26202629353182e+77, error = 697026997950546554806686464600260424462084228406222420828266468080422462042002.000000000000
## Iteración 130: x = -2.13290411925471e+77, 1.12635004365043e+78, -5.95952736329848e+78, -1.29457178351413e+77, error = 6380458311667466594022802462266224284620840488002242684682864408602604260020402.000000000000
## Iteración 131: x = 1.56790671376555e+78, 3.23867803835207e+78, -2.52054973437758e+77, 1.05594482763467e+79, error = 12428295685984780563206202886844486862240200284024286862846222644604408860646800.000000000000
## Iteración 132: x = 2.52427507047747e+78, -2.09928690659745e+79, 9.9841619239238e+79, -4.85939858010427e+78, error = 104137250642019894032840428048602002008686208240068444866646424886208002662660608.000000000000
## Iteración 133: x = -2.79027162511226e+79, -4.02020124594104e+79, -6.22031812164355e+79, -1.73375596437495e+80, error = 236539678036951275428622006262422284048468268228666880684440626286284666606682202.000000000000
## Iteración 134: x = -2.36568009205496e+79, 3.77852783483208e+80, -1.62848509664799e+81, 1.96610856546167e+80, error = 1662803913336440070884464666462888622466866600848648266646064266084802628842888262.000000000000
## Iteración 135: x = 4.82414389903649e+80, 4.2102083523166e+80, 2.12369369147816e+81, 2.76893768259873e+81, error = 4577519250529419987626646006864620602464062262248406426868266046828684044226060248.000000000000
## Iteración 136: x = 7.47410519629707e+79, -6.59972221093654e+81, 2.58238743685239e+82, -5.13035808986763e+81, error = 25952927933015637274006446644084088442462486200806028246402842860822240600060644608.000000000000
## Iteración 137: x = -8.11817008248499e+81, -2.65122100452668e+81, -5.26982039677822e+82, -4.2897946490441e+82, error = 87606061288486774984488200600866688884288440404660420628440620486626406262420268026.000000000000
## Iteración 138: x = 4.15049282728929e+81, 1.12144994964773e+83, -3.96850909500981e+83, 1.14343482663257e+83, error = 395594038198987187184026820224688486622680246604262248088468408228284866448608448480.000000000000
## Iteración 139: x = 1.33016465733155e+83, -3.02615105760229e+82, 1.14538683176137e+84, 6.41408163830738e+83, error = 1641091246854208839622262860866804082088806200440628846286884484246088288420604848668.000000000000
## Iteración 140: x = -1.57905719118204e+83, -1.85550974354216e+84, 5.87542842963377e+84, -2.33910262657682e+84, error = 5888370310953947793288488040664648600628826246848826080600666468808642642446846242282.000000000000
## Iteración 141: x = -2.11967377088948e+84, 1.74049103833675e+84, -2.30653391018517e+85, -9.17157338846586e+84, error = 30017169045993966138684860662426662862242862462006806804402802486466866220000682024060.000000000000
## Iteración 142: x = 4.05109155834971e+84, 2.98758163278576e+85, -8.29233432287455e+85, 4.52231393331808e+85, error = 85857092333839204984244004206080068600022408882628688484404062226642884200040028248006.000000000000
## Iteración 143: x = 3.27568887446896e+85, -4.89846070519888e+85, 4.40935161884834e+86, 1.23311536981448e+86, error = 536254156529215407008624662226608604462406826642802240022628460660686260404666824080226.000000000000
## Iteración 144: x = -8.95463392837993e+85, -4.67090654905313e+86, 1.09357611452573e+87, -8.3839544019681e+86, error = 1241205571150513556646800488060260864244408484420282888286624828420246248666682666802266.000000000000
## Iteración 145: x = -4.88293633272409e+86, 1.13000282313075e+87, -8.1021959559604e+87, -1.50466712965518e+87, error = 9365673970332037588040448646668226668220262448828200864624086626066260224684482446646824.000000000000
## Iteración 146: x = 1.82250866772482e+87, 7.06043223729056e+87, -1.29002949770383e+88, 1.50232505699281e+88, error = 18349485497171063664060828880444002604084444620644202088682202406640444046448262824420486.000000000000
## Iteración 147: x = 6.95437110322525e+87, -2.3596353651337e+88, 1.44092196034368e+89, 1.51716745258726e+88, error = 160040116210640213760266882484840082882826422486822000664220268420888624606466406860860208.000000000000
## Iteración 148: x = -3.51080559523861e+88, -1.02389447068929e+89, 1.19903088184741e+89, -2.61358834602437e+89, error = 291602185789895703584680800206060060806862888828022482242084048000848048068040468624282660.000000000000
## Iteración 149: x = -9.2957491906083e+88, 4.62766125112503e+89, -2.48972701444325e+90, -7.98815429759862e+88, error = 2676910655574092213444064648622006028866422008486884864800028420686608242462406080240604480.000000000000
## Iteración 150: x = 6.49026448784919e+89, 1.4046265931736e+90, -3.49125253577456e+89, 4.42440419000721e+90, error = 5129172172243520806842006060482422468282288440826044826224260808288806846884880402808668460.000000000000
## Iteración 151: x = 1.12296761680369e+90, -8.67424575322569e+90, 4.18732907520234e+91, -1.60726924959983e+90, error = 43828321731933078056620240864284224486202260426488846426626468840008802000248648028248266282.000000000000
## Iteración 152: x = -1.16021047494658e+91, -1.77221068768121e+91, -2.20167013828205e+91, -7.2929565577615e+91, error = 97018515274818156642664282868686884446028642444028484406482082666848824446244200284088484064.000000000000
## Iteración 153: x = -1.10635857726608e+91, 1.5686748184664e+92, -6.85690301824813e+92, 7.53976151010342e+91, error = 702100715670499133984668606088088480048648206022886248284466068800064248820400226248048848220.000000000000
## Iteración 154: x = 2.01406811693069e+92, 1.92049920710338e+92, 8.24382431983287e+92, 1.16959968503588e+93, error = 1877226492739758024422400000446224280620046664862806868406268806044688468426004288082000262848.000000000000
## Iteración 155: x = 5.1055777447418e+91, -2.7513905860634e+93, 1.09198538977263e+94, -2.03910263270907e+93, error = 10995488262462421477666660862868886266266662088202220640840008488684020600606440466864440024426.000000000000
## Iteración 156: x = -3.40252198145733e+93, -1.38172168344502e+93, -2.10522585029976e+94, -1.82052241989997e+94, error = 36018920723700417694028848046482684488044840426468864688682226282862646202228066084444648684284.000000000000
## Iteración 157: x = 1.40958532914764e+93, 4.69365776494983e+94, -1.686312614559e+95, 4.62151605715602e+94, error = 168188473189325271428082262282446246428606446002006206864662080026008624444888084020804066660808.000000000000
## Iteración 158: x = 5.59699481259873e+94, -8.11469041517042e+93, 4.64282608122687e+95, 2.7374069582637e+95, error = 677019431628058745582668644288088822466420662808044068262228828268204240202446400084862044488440.000000000000
## Iteración 159: x = -6.08090739603823e+94, -7.79622695714084e+95, 2.51152152014815e+96, -9.55058927775806e+95, error = 2511970863707578970664422240262842040266008000464862222002066242648404860686206202200862084480488.000000000000
## Iteración 160: x = -8.95652584069957e+95, 6.54357095477537e+95, -9.43596211965672e+96, -3.94300673003726e+96, error = 12426723587509384296284408806820420400044844606866228404886444260428208266268204604626600628284822.000000000000
## Iteración 161: x = 1.61286609804731e+96, 1.26039945199029e+97, -3.57283560589278e+97, 1.85965498347234e+97, error = 36720676597083833682220808826884286420682226008688484266804264266066880082228648480046048662200880.000000000000
## Iteración 162: x = 1.39069704579161e+97, -1.93289216399828e+97, 1.8158580913046e+98, 5.35761420259535e+97, error = 222755189385816827824486060224682028482460002480220466402000020280688026806226064602682400624428868.000000000000
## Iteración 163: x = -3.62269151548414e+97, -1.97945188617137e+98, 4.76763327051515e+98, -3.46671036379554e+98, error = 530796334033207336608662020006646804860622244446820862442824840088684404808240628424086422288622202.000000000000
## Iteración 164: x = -2.08496391604644e+98, 4.54960409233351e+98, -3.35421143118797e+99, -6.65448459176953e+98, error = 3903069194335941842888440266266660640886442488884240226668422440200408060484640664040282862840886868.000000000000
## Iteración 165: x = 7.44600854259221e+98, 3.00800263394789e+99, -5.74257211496387e+99, 6.24080657780123e+99, error = 7799169465580400164042842860626848882062428028660648602088420680082604406602600000048080424482286420.000000000000
## Iteración 166: x = 2.99179201960574e+99, -9.61032709812053e+99, 5.99198626884182e+100, 6.9780734818244e+99, error = 66905687502311645030840808464044682062622802000284602684020262886828020046822864644424084226486880086.000000000000
## Iteración 167: x = -1.44438207028244e+100, -4.39160783078579e+100, 5.61841262579048e+100, -1.09020483925746e+101, error = 122272262612526611448268248246624686660602266800402440064622826268200068606006882466668008280802488688.000000000000
## Iteración 168: x = -4.04295106252644e+100, 1.8994890472254e+101, -1.0395442543424e+102, -4.41842676367828e+100, error = 1122582961461728367548222628022480882062040660462446662224600006002620602442428260066442888820400440668.000000000000
## Iteración 169: x = 2.68470360661025e+101, 6.08140662444765e+101, -2.4813901463377e+101, 1.85277630947159e+102, error = 2120161588475999301802848064466668800200662660044286040462484844468428860224486242608262480848826604048.000000000000
## Iteración 170: x = 4.97591553886864e+101, -3.58148311162629e+102, 1.75515978083501e+103, -4.93556427766163e+101, error = 18437498533444455588260086422202062204004260660844046844260446204084288608004826246222406808682224640066.000000000000
## Iteración 171: x = -4.82122370816331e+102, -7.7886860486427e+102, -7.52589940763489e+102, -3.06596125037896e+103, error = 39810327280048614270420008844202040664028880088068248686804684424446828682804844244266204866022248400402.000000000000
## Iteración 172: x = -5.11500901583735e+102, 6.50821747113967e+103, -2.88546422290913e+104, 2.86508626855689e+103, error = 296311517505638807040026840060622046242484828882660286884880246286280088808266484684622228006082828062640.000000000000
## Iteración 173: x = 8.40383700883617e+103, 8.69714857743186e+103, 3.1782492986568e+104, 4.93726617643855e+104, error = 769681194723334952004260266402824604024620802264880860220020462062644422248084080482860286068882282206248.000000000000
## Iteración 174: x = 2.96434006679522e+103, -1.14636570022055e+105, 4.61454941465737e+105, -8.07637420822692e+104, error = 4656121678594578142084208844882428626680426280822628860646828404668642444868860846426886444826202866820260.000000000000
## Iteración 175: x = -1.42527371175317e+105, -6.91999865683303e+104, -8.38545908695682e+105, -7.72037349613265e+105, error = 14802343503801808201064224208604404466484020008004248840448886004426446662648444840022406826464420228002846.000000000000
## Iteración 176: x = 4.52361818835826e+104, 1.96334765357437e+106, -7.16006350426303e+106, 1.86437671359935e+106, error = 71469412258028120116208062440462280882846626802280404288404684062020482064420084628864260682826682846626228.000000000000
## Iteración 177: x = 2.35369752142934e+106, -1.48721675067185e+105, 1.87879742578521e+107, 1.16721726825045e+107, error = 279156471549020520842026646028608802824404206066286462048206002426886400460240600240488888448804466444248446.000000000000
## Iteración 178: x = -2.32235996676014e+106, -3.27383324939351e+107, 1.07254529988903e+108, -3.89467846299009e+107, error = 1071100301991757078704864466246444468440428288626206224608806482626064466826684262806826228806064206828460206.000000000000
## Iteración 179: x = -3.78209940416228e+107, 2.42663042653503e+107, -3.85581754129803e+108, -1.69309710008052e+108, error = 5141904091776918062422808248444284602844860884260606260886600400200060000084222806680628428002642800844684848.000000000000
## Iteración 180: x = 6.40019132854669e+107, 5.31410297081005e+108, -1.53734207984874e+109, 7.64022431933554e+108, error = 15701030759115930548888622086062860246482204002642240028404482082046624224848400822486066602264628842064428660.000000000000
## Iteración 181: x = 5.89984738233763e+108, -7.59373823942738e+108, 7.47161409776846e+109, 2.3234691547325e+109, error = 92485645951522162280822024822440404022426822066482662006082046886284426464226462282066088860262280048066628004.000000000000
## Iteración 182: x = -1.46292370636441e+109, -8.38274535834922e+109, 2.07418333068835e+110, -1.43240529224358e+110, error = 227061431291461760608220648042088666448046882628886868666822224204828484824240006646842606884622446842020488606.000000000000
## Iteración 183: x = -8.89438029032335e+109, 1.82771891914298e+110, -1.38762145366636e+111, -2.93313903317251e+110, error = 1625814197439438779846660420604446604246642266224000406884040826286222204400080248244282444420624248480642026400.000000000000
## Iteración 184: x = 3.03845219478269e+110, 1.28043853346768e+111, -2.54599704084419e+111, 2.59084292004914e+111, error = 3319540609003449076068868680084080020820644444042448402220080646888440404048448284006246844024846424880864268080.000000000000
## Iteración 185: x = 1.28546714247522e+111, -3.90868731967618e+111, 2.49018700333882e+112, 3.1821792240793e+111, error = 27957569534361677736066466466006648866482224884224864428640448482688066086802644400686288468842840464042024888864.000000000000
## Iteración 186: x = -5.9370011632109e+111, -1.88152934648527e+112, 2.60163928395127e+112, -4.54491350688583e+112, error = 51386942370001957736402000004066004262600800626200680046420686864440866040462846808424628046426800622042200268864.000000000000
## Iteración 187: x = -1.75500781478394e+112, 7.78900737179602e+112, -4.33794510247788e+113, -2.29877269504146e+112, error = 470550074967198474808404084862664204400426644688806226040026068480888886622202460882422800204488448488486606408040.000000000000
## Iteración 188: x = 1.10972236526471e+113, 2.62872709024723e+113, -1.46549546983611e+113, 7.75435640970189e+113, error = 877910077454744543222004460268864440666884282840628440640662028484224044882662424446262220464828064260022846462602.000000000000
## Iteración 189: x = 2.19704159643026e+113, -1.47759650844857e+114, 7.3527657142829e+114, -1.31379342416724e+113, error = 7752618817537494524868242628006884208826600822444644864066006220480288042640660220480868004462804428828888464008040.000000000000
## Iteración 190: x = -2.00218284941702e+114, -3.413624172308e+114, -2.44030643055606e+114, -1.28818721903964e+115, error = 16345161819225276334404062484000624868602880020482288446046662204880680026244624868280844846808024666862600060440428.000000000000
## Iteración 191: x = -2.34264719584411e+114, 2.69838975960708e+115, -1.21352656735292e+116, 1.07669003238008e+115, error = 124994146831180974440200884624846080864468822862486044024688642480608044422622048648460080868406408460442288266484688.000000000000
## Iteración 192: x = 3.50452198210075e+115, 3.91425277200446e+115, 1.21543353314434e+116, 2.0828854813972e+116, error = 315529646690376932244628026640408622884400206064248866664204424022022026806008086480088208464440666426008604066866664.000000000000
## Iteración 193: x = 1.58675557017471e+115, -4.77348772936657e+116, 1.94878468079853e+117, -3.18640223469599e+116, error = 1970684106007523699084622642062440464460204040068688204488466044642884668244620626068422824662844886202862428268602486.000000000000
## Iteración 194: x = -5.96692043777158e+116, -3.37111893460068e+116, -3.3292432284613e+117, -3.27168270148268e+117, error = 6080537322733447333884868886466266688242200660826480648020848068022660222440468066444006848824422886086664202668026662.000000000000
## Iteración 195: x = 1.31557473479561e+116, 8.20798701719602e+117, -3.03789482505814e+118, 7.50576367738746e+117, error = 30354389385810579040028420482248444282648220488840808202444806884822026282246048840842204802202226648222200426820206868.000000000000
## Iteración 196: x = 9.89224163692428e+117, 1.77946770515766e+116, 7.58914175871627e+118, 4.97262088292484e+118, error = 115046552081368754912648464280642004268686480428626402266880824466660828084848062026226682486486068044062244466286028822.000000000000
## Iteración 197: x = -8.78105184281004e+117, -1.37398126452078e+119, 4.57606067870675e+119, -1.58614925292963e+119, error = 456495312375847128564464448264206268488068006628026826286268088822088246442880246640628066884048600066402064440260402084.000000000000
## Iteración 198: x = -1.59607622237187e+119, 8.84268166505876e+118, -1.57371350593155e+120, -7.26160599243373e+119, error = 2126526007881431655266208642280882600448200268688048820046886648224084688266480202028048444080406848208604442204408666600.000000000000
## Iteración 199: x = 2.5304203001253e+119, 2.23917795145252e+120, -6.60662619877696e+120, 3.13592967115378e+120, error = 6711330837460953962888042084224628680840046282020404060446408604042882824040222600068884804084080266486222800848628448228.000000000000
## Iteración 200: x = 2.50112597282607e+120, -2.96854624291908e+120, 3.07155870218491e+121, 1.00589871089422e+121, error = 38380341278724550752284066646884420400202420662260442664604888868446824828022602488602022284480862608028208064228402060400.000000000000
## 
## Resultado final x:
## [1]  2.501126e+120 -2.968546e+120  3.071559e+121  1.005899e+121
## 
## Chequeando residuo (Ax-b):
##               [,1]
## [1,] 2.519143e+121
## [2,] 6.501444e+121
## [3,] 5.934788e+121
## [4,] 2.075986e+122

7.7.6 (4x4)

A <- matrix(c(10,-1,2,0,
             -1,11,-1,3,
              2,-1,10,-1,
              0,2,-1,8),4,byrow=TRUE)
b <- c(6,25,-11,15)
cat("\n=== Ejercicio 7.7.6 ===\n")
## 
## === Ejercicio 7.7.6 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0 0
## Iteración 1: x = 0.6, 2.27273, -1.1, 1.875, error = 3.201704898362
## Iteración 2: x = 1.04727, 1.71591, -0.80523, 1.16932, error = 1.046411567894
## Iteración 3: x = 0.93264, 1.97583, -1.02093, 1.34537, error = 0.397770010227
## Iteración 4: x = 1.00177, 1.89778, -0.95441, 1.25343, error = 0.154107754209
## Iteración 5: x = 0.98066, 1.93519, -0.98523, 1.28125, error = 0.059744952547
## Iteración 6: x = 0.99057, 1.92288, -0.97449, 1.26805, error = 0.023227298869
## Iteración 7: x = 0.98719, 1.92836, -0.97902, 1.27247, error = 0.009029429657
## Iteración 8: x = 0.98864, 1.92643, -0.97735, 1.27053, error = 0.003513637365
## Iteración 9: x = 0.98811, 1.92724, -0.97803, 1.27122, error = 0.001367131000
## Iteración 10: x = 0.98833, 1.92695, -0.97778, 1.27094, error = 0.000532160343
## Iteración 11: x = 0.98825, 1.92707, -0.97788, 1.27104, error = 0.000207125877
## Iteración 12: x = 0.98828, 1.92702, -0.97784, 1.271, error = 0.000080632197
## Iteración 13: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000031387160
## Iteración 14: x = 0.98827, 1.92703, -0.97785, 1.27101, error = 0.000012219027
## Iteración 15: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000004756644
## Iteración 16: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000001851768
## Iteración 17: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000720874
## Iteración 18: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000280636
## Iteración 19: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000109250
## Iteración 20: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000042531
## Iteración 21: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000016557
## Iteración 22: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000006446
## Iteración 23: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000002509
## Iteración 24: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000000977
## Iteración 25: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000000380
## Iteración 26: x = 0.98827, 1.92704, -0.97785, 1.27101, error = 0.000000000148
## ¡Convergencia alcanzada en 27 iteraciones!
## 
## Resultado final x:
## [1]  0.9882736  1.9270358 -0.9778502  1.2710098
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0
## [4,]    0

7.7.7 (3x3)

A <- matrix(c(1,2,-2,
              1,1,1,
              2,2,1),3,byrow=TRUE)
b <- c(7,2,5)
cat("\n=== Ejercicio 7.7.7 (iteración cada 5) ===\n")
## 
## === Ejercicio 7.7.7 (iteración cada 5) ===
res <- jacobi(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## ¡Convergencia alcanzada en 4 iteraciones!
## 
## Resultado final x:
## [1]  1  2 -1
## 
## Chequeando residuo (Ax-b):
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

7.7.8 (3x3)

A <- matrix(c(-4,14,0,
              -5,13,0,
              -1,0,2),3,byrow=TRUE)
b <- c(10,8,1)
cat("\n=== Ejercicio 7.7.8 (iteración cada 5) ===\n")
## 
## === Ejercicio 7.7.8 (iteración cada 5) ===
res <- jacobi(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0
## Iteración 5: x = -5.34246, 0.30303, 0.09393, error = 4.885597807097
## Iteración 10: x = -3.42052, -3.42052, -4.74668, error = 8.766071936341
## Iteración 15: x = -27.03696, -2.08098, -3.00528, error = 21.596888889355
## Iteración 20: x = -18.54101, -18.54101, -24.40331, error = 38.750607209258
## Iteración 25: x = -122.93798, -12.61956, -16.70543, error = 95.469506110705
## Iteración 30: x = -85.38144, -85.38144, -111.29587, error = 171.297882334397
## Iteración 35: x = -546.87046, -59.20554, -77.26721, error = 422.024979788384
## Iteración 40: x = -380.851, -380.851, -495.40629, error = 757.225927681431
## Iteración 45: x = -2420.873, -265.13989, -344.98186, error = 1865.570388086617
## Iteración 50: x = -1686.98044, -1686.98044, -2193.37457, error = 3347.333298806736
## Iteración 55: x = -10704.94102, -1175.47704, -1528.42015, error = 8246.793530209530
## Iteración 60: x = -7460.75339, -7460.75339, -9699.2794, error = 14796.957953629695
## Iteración 65: x = -47324.83971, -5199.64173, -6759.83424, error = 36455.125984100952
## Iteración 70: x = -32983.83935, -32983.83935, -42879.29116, error = 65410.266960728688
## Iteración 75: x = -209203.87978, -22988.54723, -29885.4114, error = 161150.658816470648
## Iteración 80: x = -145809.18305, -145809.18305, -189552.23797, error = 289147.474587793695
## Iteración 85: x = -924793.61513, -101624.78188, -132112.51645, error = 712369.910566446255
## Iteración 90: x = -644556.01157, -644556.01157, -837923.11504, error = 1278182.553676087642
## Iteración 95: x = -4088073.2413, -449237.92762, -584009.6059, error = 3149046.322288939729
## Iteración 100: x = -2849276.96176, -2849276.96176, -3704060.35029, error = 5650233.130519251339
## Iteración 105: x = -18071418.02522, -1985869.22255, -2581630.28932, error = 13920426.161790475249
## Iteración 110: x = -12595292.7562, -12595292.7562, -16373880.88306, error = 24976975.579427067190
## Iteración 115: x = -79885090.68596, -8778580.50395, -11412154.95514, error = 61535539.555038847029
## Iteración 120: x = -55677762.60679, -55677762.60679, -72381091.68883, error = 110411251.126192897558
## Iteración 125: x = -353133743.76941, -38805905.01862, -50447676.8242, error = 272019159.781434893608
## Iteración 130: x = -246124735.76748, -246124735.76748, -319962156.79773, error = 488075281.031718254089
## Iteración 135: x = -1561035219.25234, -171542330.89586, -223005030.46462, error = 1202466474.223655462265
## Iteración 140: x = -1087999626.22412, -1087999626.22412, -1414399514.39136, error = 2157547147.816699981689
## Iteración 145: x = -6900589350.66187, -758306521.16064, -985798477.80884, error = 5315528592.889035224915
## Iteración 150: x = -4809525463.14757, -4809525463.14758, -6252383102.39185, error = 9537482998.958637237549
## Iteración 155: x = -30504201814.8768, -3352110088.65679, -4357743115.55383, error = 23497407060.818859100342
## Iteración 160: x = -21260609480.3661, -21260609480.3661, -27638792324.776, error = 42160646198.380599975586
## Iteración 165: x = -134844472116.393, -14818073858.0541, -19263496015.7704, error = 103870787059.718078613281
## Iteración 170: x = -93982975843.2227, -93982975843.2227, -122177868596.49, error = 186372032124.105133056641
## Iteración 175: x = -596082853448.859, -65503610268.2153, -85154693348.9799, error = 459163020689.028991699219
## Iteración 180: x = -415453741166.545, -415453741166.545, -540089863516.809, error = 823861527041.837158203125
## Iteración 185: x = -2634996916057.95, -289560100664.819, -376428130864.564, error = 2029739886798.598632812500
## Iteración 190: x = -1836522088171.63, -1836522088171.63, -2387478714623.42, error = 3641897381296.616210937500
## Iteración 195: x = -11648059841774.4, -1280006576018.27, -1664008548824.05, error = 8972508286662.259765625000
## Iteración 200: x = -8118384903375.67, -8118384903375.67, -10553900374388.7, error = 16099084737600.105468750000
## 
## Resultado final x:
## [1] -8.118385e+12 -8.118385e+12 -1.055390e+13
## 
## Chequeando residuo (Ax-b):
##               [,1]
## [1,] -8.118385e+13
## [2,] -6.494708e+13
## [3,] -1.298942e+13

7.7.9 (3x3)

A <- matrix(c(1,1,2,
              1,2,1,
              2,1,1),3,byrow=TRUE)
b <- c(1,1,1)
cat("\n=== Ejercicio 7.7.9 ===\n")
## 
## === Ejercicio 7.7.9 ===
res <- jacobi(A,b, verbose=TRUE)
## Vector inicial x:
## [1] 0 0 0
## Iteración 1: x = 1, 0.5, 1, error = 1.500000000000
## Iteración 2: x = -1.5, -0.5, -1.5, error = 3.674234614175
## Iteración 3: x = 4.5, 2, 4.5, error = 8.845903006477
## Iteración 4: x = -10, -4, -10, error = 21.365860619221
## Iteración 5: x = 25, 10.5, 25, error = 51.577611422011
## Iteración 6: x = -59.5, -24.5, -59.5, error = 124.521082552313
## Iteración 7: x = 144.5, 60, 144.5, error = 300.619776461895
## Iteración 8: x = -348, -144, -348, error = 725.760635471503
## Iteración 9: x = 841, 348.5, 841, error = 1752.141047404575
## Iteración 10: x = -2029.5, -840.5, -2029.5, error = 4230.042730280629
## Iteración 11: x = 4900.5, 2030, 4900.5, error = 10212.226507965832
## Iteración 12: x = -11830, -4900, -11830, error = 24654.495746212291
## Iteración 13: x = 28561, 11830.5, 28561, error = 59521.218000390414
## Iteración 14: x = -68951.5, -28560.5, -68951.5, error = 143696.931746993127
## Iteración 15: x = 166464.5, 68952, 166464.5, error = 346915.081494376645
## Iteración 16: x = -401880, -166464, -401880, error = 837527.094735746388
## Iteración 17: x = 970225, 401880.5, 970225, error = 2021969.270965869538
## Iteración 18: x = -2342329.5, -970224.5, -2342329.5, error = 4881465.636667485349
## Iteración 19: x = 5654884.5, 2342330, 5654884.5, error = 11784900.544300841168
## Iteración 20: x = -13652098, -5654884, -13652098, error = 28451266.725269168615
## Iteración 21: x = 32959081, 13652098.5, 32959081, error = 68687433.994839176536
## Iteración 22: x = -79570259.5, -32959080.5, -79570259.5, error = 165826134.714947521687
## Iteración 23: x = 192099600.5, 79570260, 192099600.5, error = 400339703.424734175205
## Iteración 24: x = -463769460, -192099600, -463769460, error = 966505541.564415931702
## Iteración 25: x = 1119638521, 463769460.5, 1119638521, error = 2333350786.553565979004
## Iteración 26: x = -2703046501.5, -1119638520.5, -2703046501.5, error = 5633207114.671547889709
## Iteración 27: x = 6525731524.5, 2703046502, 6525731524.5, error = 13599765015.896661758423
## Iteración 28: x = -15754509550, -6525731524, -15754509550, error = 32832737146.464874267578
## Iteración 29: x = 38034750625, 15754509550.5, 38034750625, error = 79265239308.826400756836
## Iteración 30: x = -91824010799.5, -38034750624.5, -91824010799.5, error = 191363215764.117675781250
## Iteración 31: x = 221682772224.5, 91824010800, 221682772224.5, error = 461991670837.061767578125
## Iteración 32: x = -535189555248, -221682772224, -535189555248, error = 1115346557438.241210937500
## Iteración 33: x = 1292061882721, 535189555248.5, 1292061882721, error = 2692684785713.543945312500
## Iteración 34: x = -3119313320689.5, -1292061882720.5, -3119313320689.5, error = 6500716128865.330078125000
## Iteración 35: x = 7530688524100.5, 3119313320690, 7530688524100.5, error = 15694117043444.203125000000
## Iteración 36: x = -18180690368890, -7530688524100, -18180690368890, error = 37888950215753.734375000000
## Iteración 37: x = 43892069261881, 18180690368890.5, 43892069261881, error = 91472017474951.687500000000
## Iteración 38: x = -105964828892652, -43892069261880.5, -105964828892652, error = 220832985165657.093750000000
## Iteración 39: x = 255821727047185, 105964828892652, 255821727047185, error = 533137987806265.875000000000
## Iteración 40: x = -617608282987020, -255821727047184, -617608282987020, error = 1287108960778189.000000000000
## Iteración 41: x = 1491038293021225, 617608282987021, 1491038293021225, error = 3107355909362643.500000000000
## Iteración 42: x = -3599684869029470, -1491038293021225, -3599684869029470, error = 7501820779503475.000000000000
## Iteración 43: x = 8690408031080165, 3599684869029470, 8690408031080165, error = 18110997468369596.000000000000
## Iteración 44: x = -20980500931189800, -8690408031080164, -20980500931189800, error = 43723815716242672.000000000000
## Iteración 45: x = 50651409893459760, 20980500931189800, 50651409893459760, error = 105558628900854928.000000000000
## Iteración 46: x = -122283320718109312, -50651409893459760, -122283320718109312, error = 254841073517952544.000000000000
## Iteración 47: x = 295218051329678400, 122283320718109312, 295218051329678400, error = 615240775936759936.000000000000
## Iteración 48: x = -712719423377466112, -295218051329678400, -712719423377466112, error = 1485322625391472384.000000000000
## Iteración 49: x = 1720656898084610560, 712719423377466112, 1720656898084610560, error = 3585886026719704576.000000000000
## Iteración 50: x = -4154033219546687488, -1720656898084610560, -4154033219546687488, error = 8657094678830881792.000000000000
## Iteración 51: x = 1.0028723337178e+19, 4154033219546687488, 1.0028723337178e+19, error = 20900075384381468672.000000000000
## Iteración 52: x = -24211479893902655488, -1.0028723337178e+19, -24211479893902655488, error = 50457245447593820160.000000000000
## Iteración 53: x = 58451683124983300096, 24211479893902655488, 58451683124983300096, error = 121814566279569096704.000000000000
## Iteración 54: x = -1.41114846143869e+20, -58451683124983300096, -1.41114846143869e+20, error = 294086378006732046346.000000000000
## Iteración 55: x = 3.40681375412722e+20, 1.41114846143869e+20, 3.40681375412722e+20, error = 709987322293033107446.000000000000
## Iteración 56: x = -8.22477596969313e+20, -3.40681375412722e+20, -8.22477596969313e+20, error = 1714061022592798294086.000000000000
## Iteración 57: x = 1.98563656935135e+21, 8.22477596969313e+20, 1.98563656935135e+21, error = 4138109367478629957662.000000000000
## Iteración 58: x = -4.79375073567201e+21, -1.98563656935135e+21, -4.79375073567201e+21, error = 9990279757550057423228.000000000000
## Iteración 59: x = 1.15731380406954e+22, 4.79375073567201e+21, 1.15731380406954e+22, error = 24118668882578746900880.000000000000
## Iteración 60: x = -2.79400268170627e+22, -1.15731380406954e+22, -2.79400268170627e+22, error = 58227617522707538640026.000000000000
## Iteración 61: x = 6.74531916748208e+22, 2.79400268170627e+22, 6.74531916748208e+22, error = 140573903927993828386686.000000000000
## Iteración 62: x = -1.62846410166704e+23, -6.74531916748208e+22, -1.62846410166704e+23, error = 339375425378695203786866.000000000000
## Iteración 63: x = 3.9314601200823e+23, 1.62846410166704e+23, 3.9314601200823e+23, error = 819324754685384353468400.000000000000
## Iteración 64: x = -9.49138434183164e+23, -3.9314601200823e+23, -9.49138434183164e+23, error = 1978024934749463507840042.000000000000
## Iteración 65: x = 2.29142288037456e+24, 9.49138434183164e+23, 2.29142288037456e+24, error = 4775374624184312443880048.000000000000
## Iteración 66: x = -5.53198419493228e+24, -2.29142288037456e+24, -5.53198419493228e+24, error = 11528774183118088125640882.000000000000
## Iteración 67: x = 1.33553912702391e+25, 5.53198419493228e+24, 1.33553912702391e+25, error = 27832922990420487620268468.000000000000
## Iteración 68: x = -3.22427667354105e+25, -1.33553912702391e+25, -3.22427667354105e+25, error = 67194620163959065512464026.000000000000
## Iteración 69: x = 7.78409247410601e+25, 3.22427667354105e+25, 7.78409247410601e+25, error = 162222163318338635824202024.000000000000
## Iteración 70: x = -1.87924616217531e+26, -7.78409247410601e+25, -1.87924616217531e+26, error = 391638946800636329908460260.000000000000
## Iteración 71: x = 4.53690157176122e+26, 1.87924616217531e+26, 4.53690157176122e+26, error = 945500056919611241448042866.000000000000
## Iteración 72: x = -1.09530493056977e+27, -4.53690157176122e+26, -1.09530493056977e+27, error = 2282639060639859146408426262.000000000000
## Iteración 73: x = 2.64430001831567e+27, 1.09530493056977e+27, 2.64430001831567e+27, error = 5510778178199329534404620060.000000000000
## Iteración 74: x = -6.38390496720111e+27, -2.64430001831567e+27, -6.38390496720111e+27, error = 13304195417038516291260428664.000000000000
## Iteración 75: x = 1.54121099527179e+28, 6.38390496720111e+27, 1.54121099527179e+28, error = 32119169012276362116222086488.000000000000
## Iteración 76: x = -3.72081248726369e+28, -1.54121099527179e+28, -3.72081248726369e+28, error = 77542533441591244920680664424.000000000000
## Iteración 77: x = 8.98283596979917e+28, 3.72081248726369e+28, 8.98283596979917e+28, error = 187204235895458843168622442808.000000000000
## Iteración 78: x = -2.1686484426862e+29, -8.98283596979917e+28, -2.1686484426862e+29, error = 451951005232508931242242640640.000000000000
## Iteración 79: x = 5.23558048235232e+29, 2.1686484426862e+29, 5.23558048235232e+29, error = 1091106246360476600188248604002.000000000000
## Iteración 80: x = -1.26398094073908e+30, -5.23558048235232e+29, -1.26398094073908e+30, error = 2634163497953462061026022004440.000000000000
## Iteración 81: x = 3.0515199297134e+30, 1.26398094073908e+30, 3.0515199297134e+30, error = 6359433242267400018462204484402.000000000000
## Iteración 82: x = -7.36702080016589e+30, -3.0515199297134e+30, -7.36702080016589e+30, error = 15353029982488264350446602062822.000000000000
## Iteración 83: x = 1.77855615300452e+31, 7.36702080016589e+30, 1.77855615300452e+31, error = 37065493207243929844202084462060.000000000000
## Iteración 84: x = -4.29381438602562e+31, -1.77855615300452e+31, -4.29381438602562e+31, error = 89484016396976110538044466044044.000000000000
## Iteración 85: x = 1.03661849250558e+32, 4.29381438602562e+31, 1.03661849250558e+32, error = 216033526001196123882482060828622.000000000000
## Iteración 86: x = -2.50261842361372e+32, -1.03661849250558e+32, -2.50261842361372e+32, error = 521551068399368358382600246200488.000000000000
## Iteración 87: x = 6.04185533973301e+32, 2.50261842361372e+32, 6.04185533973301e+32, error = 1259135662799933056640400600002886.000000000000
## Iteración 88: x = -1.45863291030797e+33, -6.04185533973301e+32, -1.45863291030797e+33, error = 3039822393999234327466248286488448.000000000000
## Iteración 89: x = 3.52145135458925e+33, 1.45863291030797e+33, 3.52145135458925e+33, error = 7338780450798401279266882080200846.000000000000
## Iteración 90: x = -8.50153561948647e+33, -3.52145135458925e+33, -8.50153561948647e+33, error = 17717383295596039768024422628002040.000000000000
## Iteración 91: x = 2.05245225935622e+34, 8.50153561948647e+33, 2.05245225935622e+34, error = 42773547041990479664884886086248600.000000000000
## Iteración 92: x = -4.95505808066108e+34, -2.05245225935622e+34, -4.95505808066108e+34, error = 103264477379577006018622262680088626.000000000000
## Iteración 93: x = 1.19625684206784e+35, 4.95505808066108e+34, 1.19625684206784e+35, error = 249302501801144491680646680622642802.000000000000
## Iteración 94: x = -2.88801949220179e+35, -1.19625684206784e+35, -2.88801949220179e+35, error = 601869480981865970924068680488840884.000000000000
## Iteración 95: x = 6.97229582647141e+35, 2.88801949220179e+35, 6.97229582647141e+35, error = 1453041463764876507384842664224028604.000000000000
## Iteración 96: x = -1.68326111451446e+36, -6.97229582647141e+35, -1.68326111451446e+36, error = 3507952408511618985602480000268080262.000000000000
## Iteración 97: x = 4.06375181167606e+36, 1.68326111451446e+36, 4.06375181167606e+36, error = 8468946280788115659284606840444640602.000000000000
## Iteración 98: x = -9.81076473786659e+36, -4.06375181167606e+36, -9.81076473786659e+36, error = 20445844970087850304008088686002666626.000000000000
## Iteración 99: x = 2.36852812874092e+37, 9.81076473786659e+36, 2.36852812874092e+37, error = 49360636220963808004208020660688208686.000000000000
## Iteración 100: x = -5.71813273126851e+37, -2.36852812874092e+37, -5.71813273126851e+37, error = 119167117412015475752460022466668086080.000000000000
## Iteración 101: x = 1.38047935912779e+38, 5.71813273126851e+37, 1.38047935912779e+38, error = 287694871044994787840004080882646840402.000000000000
## Iteración 102: x = -3.33277199138244e+38, -1.38047935912779e+38, -3.33277199138244e+38, error = 694556859502004938182446468004646628060.000000000000
## Iteración 103: x = 8.04602334189267e+38, 3.33277199138244e+38, 8.04602334189267e+38, error = 1676808590049004852962848866266466044822.000000000000
## Iteración 104: x = -1.94248186751678e+39, -8.04602334189267e+38, -1.94248186751678e+39, error = 4048174039600014492808820822248004480222.000000000000
## Iteración 105: x = 4.68956606922282e+39, 1.94248186751678e+39, 4.68956606922282e+39, error = 9773156669249033234422400044684286886228.000000000000
## Iteración 106: x = -1.13216140059624e+40, -4.68956606922282e+39, -1.13216140059624e+40, error = 23594487378098082774440008028626006620242.000000000000
## Iteración 107: x = 2.73327940811477e+40, 1.13216140059624e+40, 2.73327940811477e+40, error = 56962131425445204838860600628408288646082.000000000000
## Iteración 108: x = -6.59872021682577e+40, -2.73327940811477e+40, -6.59872021682577e+40, error = 137518750228988458584626248280460086620648.000000000000
## Iteración 109: x = 1.59307198417663e+41, 6.59872021682577e+40, 1.59307198417663e+41, error = 331999631883422189786088244060628640486464.000000000000
## Iteración 110: x = -3.84601599003584e+41, -1.59307198417663e+41, -3.84601599003584e+41, error = 801518013995832702568402440244080484640024.000000000000
## Iteración 111: x = 9.28510396424831e+41, 3.84601599003584e+41, 9.28510396424831e+41, error = 1935035659875087594882628224646826682442842.000000000000
## Iteración 112: x = -2.24162239185325e+42, -9.28510396424831e+41, -2.24162239185325e+42, error = 4671589333746007892064680284846020202824028.000000000000
## Iteración 113: x = 5.41175518013132e+42, 2.24162239185325e+42, 5.41175518013132e+42, error = 11278214327367103998482662828820242028002480.000000000000
## Iteración 114: x = -1.30651327521159e+43, -5.41175518013132e+42, -1.30651327521159e+43, error = 27228017988480215888062204226060020226448428.000000000000
## Iteración 115: x = 3.15420206843631e+43, 1.30651327521159e+43, 3.15420206843631e+43, error = 65734250304327535776024888840646402820880626.000000000000
## Iteración 116: x = -7.61491741208421e+43, -3.15420206843631e+43, -7.61491741208421e+43, error = 158696518597135312202088604020264488420264880.000000000000
## Iteración 117: x = 1.83840368926047e+44, 7.61491741208421e+43, 1.83840368926047e+44, error = 383127287498598189968080804824642024248024440.000000000000
## Iteración 118: x = -4.43829911972937e+44, -1.83840368926047e+44, -4.43829911972937e+44, error = 924951093594331612726284002084620826688688848.000000000000
## Iteración 119: x = 1.07150019287192e+45, 4.43829911972937e+44, 1.07150019287192e+45, error = 2233029474687261088682286646688284202468226282.000000000000
## Iteración 120: x = -2.58683029771678e+45, -1.07150019287192e+45, -2.58683029771678e+45, error = 5391010042968853473868400848882860282868042068.000000000000
## Iteración 121: x = 6.24516078830548e+45, 2.58683029771678e+45, 6.24516078830548e+45, error = 13015049560624970253808062446266042262804848846.000000000000
## Iteración 122: x = -1.50771518743277e+46, -6.24516078830548e+45, -1.50771518743277e+46, error = 31421109164218794612206604006224248868622862288.000000000000
## Iteración 123: x = 3.6399464536961e+46, 1.50771518743277e+46, 3.6399464536961e+46, error = 75857267889062556944866202664800280682680040480.000000000000
## Iteración 124: x = -8.78760809482496e+46, -3.6399464536961e+46, -8.78760809482496e+46, error = 183135644942343913578664460620008686800200800082.000000000000
## Iteración 125: x = 2.1215162643346e+47, 8.78760809482496e+46, 2.1215162643346e+47, error = 442128557773750434804844642008806424828240684284.000000000000
## Iteración 126: x = -5.1217933381517e+47, -2.1215162643346e+47, -5.1217933381517e+47, error = 1067392760489844661540802466286448644626228660424.000000000000
## Iteración 127: x = 1.2365102940638e+48, 5.1217933381517e+47, 1.2365102940638e+48, error = 2576914078753440163468666800886260806040262640882.000000000000
## Iteración 128: x = -2.98519992194277e+48, -1.2365102940638e+48, -2.98519992194277e+48, error = 6221220917996724501222282828086242802888446080484.000000000000
## Iteración 129: x = 7.20691013794934e+48, 2.98519992194277e+48, 7.20691013794934e+48, error = 15019355914746887543044606226268402228644088480220.000000000000
## Iteración 130: x = -1.73990201978415e+49, -7.20691013794934e+48, -1.73990201978415e+49, error = 36259932747490504788806440444420828046840686228680.000000000000
## Iteración 131: x = 4.20049505336323e+49, 1.73990201978415e+49, 4.20049505336323e+49, error = 87539221409727889312448668482466620266260062464066.000000000000
## Iteración 132: x = -1.01408921265106e+50, -4.20049505336323e+49, -1.01408921265106e+50, error = 211338375566946273024046408000804480682060646624460.000000000000
## Iteración 133: x = 2.44822793063844e+50, 1.01408921265106e+50, 2.44822793063844e+50, error = 510215972543620373084240882282088202468860646066224.000000000000
## Iteración 134: x = -5.91054507392794e+50, -2.44822793063844e+50, -5.91054507392794e+50, error = 1231770320654187019126622802468806286028624882482408.000000000000
## Iteración 135: x = 1.42693180784943e+51, 5.91054507392794e+50, 1.42693180784943e+51, error = 2973756613851994660682220440204606244462604668282088.000000000000
## Iteración 136: x = -3.44491812309166e+51, -1.42693180784943e+51, -3.44491812309166e+51, error = 7179283548358176506448264468440220426484668642204606.000000000000
## Iteración 137: x = 8.31676805403275e+51, 3.44491812309166e+51, 8.31676805403275e+51, error = 17332323710568347673606446462802222022264848624040820.000000000000
## Iteración 138: x = -2.00784542311572e+52, -8.31676805403275e+51, -2.00784542311572e+52, error = 41843930969494873180828684828206486046424682880080242.000000000000
## Iteración 139: x = 4.84736765163471e+52, 2.00784542311572e+52, 4.84736765163471e+52, error = 101020185649558109994466224688842002420264866240262266.000000000000
## Iteración 140: x = -1.17025807263851e+53, -4.84736765163471e+52, -1.17025807263851e+53, error = 243884302268611061268086824888668006244822666046442000.000000000000
## Iteración 141: x = 2.8252529104405e+53, 1.17025807263851e+53, 2.8252529104405e+53, error = 588788790186780253860208808288468066628244046222862062.000000000000
## Iteración 142: x = -6.82076389351951e+53, -2.8252529104405e+53, -6.82076389351951e+53, error = 1421461882642171653940842648804060484262808024240042008.000000000000
## Iteración 143: x = 1.64667806974795e+54, 6.82076389351951e+53, 1.64667806974795e+54, error = 3431712555471123476684046804680884426622026060862666264.000000000000
## Iteración 144: x = -3.97543252884785e+54, -1.64667806974795e+54, -3.97543252884785e+54, error = 8284886993584418777866406462664204464286468064860404204.000000000000
## Iteración 145: x = 9.59754312744366e+54, 3.97543252884785e+54, 9.59754312744366e+54, error = 20001486542639963072004404820824600244060446602460682668.000000000000
## Iteración 146: x = -2.31705187837352e+55, -9.59754312744366e+54, -2.31705187837352e+55, error = 48287860078864336756240688042480268644066204800200026026.000000000000
## Iteración 147: x = 5.5938580694914e+55, 2.31705187837352e+55, 5.5938580694914e+55, error = 116577206700368644752828208248606424022664002664608844264.000000000000
## Iteración 148: x = -1.35047680173563e+56, -5.5938580694914e+55, -1.35047680173563e+56, error = 281442273479601593584484826466662062622644808224246862088.000000000000
## Iteración 149: x = 3.2603394104204e+56, 1.35047680173563e+56, 3.2603394104204e+56, error = 679461753659571788362242868062402488822008624488064020602.000000000000
## Iteración 150: x = -7.87115562257644e+56, -3.2603394104204e+56, -7.87115562257644e+56, error = 1640365780798744909068880604024660260686600820422088426884.000000000000
## Iteración 151: x = 1.90026506555733e+57, 7.87115562257644e+56, 1.90026506555733e+57, error = 3960193315257061867626000248406402086466064246668822086808.000000000000
## Iteración 152: x = -4.5876456933723e+57, -1.90026506555733e+57, -4.5876456933723e+57, error = 9560752411312869341804460664288866242268286806428642286288.000000000000
## Iteración 153: x = 1.10755564523019e+58, 4.5876456933723e+57, 1.10755564523019e+58, error = 23081698137882801944046200206246862280466280804042408280020.000000000000
## Iteración 154: x = -2.67387585979762e+58, -1.10755564523019e+58, -2.67387585979762e+58, error = 55724148687078478804224242264406020486006822642800286644842.000000000000
## Iteración 155: x = 6.45530736482542e+58, 2.67387585979762e+58, 6.45530736482542e+58, error = 134529995512039734464026200028228026264224646202262028846666.000000000000
## Iteración 156: x = -1.55844905894485e+59, -6.45530736482542e+58, -1.55844905894485e+59, error = 324784139711157925420262642860264066040800600466646648262448.000000000000
## Iteración 157: x = 3.76242885437224e+59, 1.55844905894485e+59, 3.76242885437224e+59, error = 784098274934355540726880466242428460882444646420804266820820.000000000000
## Iteración 158: x = -9.08330676768932e+59, -3.76242885437224e+59, -9.08330676768932e+59, error = 1892980689579868873028680004200620060846446664040800844042662.000000000000
## Iteración 159: x = 2.19290423897509e+60, 9.08330676768932e+59, 2.19290423897509e+60, error = 4570059654094094268064444226044000820886248862462404880682688.000000000000
## Iteración 160: x = -5.29413915471911e+60, -2.19290423897509e+60, -5.29413915471911e+60, error = 11033099997768059193604482028008228664264866042280860604066868.000000000000
## Iteración 161: x = 1.27811825484133e+61, 5.29413915471911e+60, 1.27811825484133e+61, error = 26636259649630210514626668226426246020008868088646048424240268.000000000000
## Iteración 162: x = -3.08565042515457e+61, -1.27811825484133e+61, -3.08565042515457e+61, error = 64305619297028483072426828284642486866808082846848282022404082.000000000000
## Iteración 163: x = 7.44941910515047e+61, 3.08565042515457e+61, 7.44941910515047e+61, error = 155247498243687176666646080666248828642660662008442682484244662.000000000000
## Iteración 164: x = -1.79844886354555e+62, -7.44941910515047e+61, -1.79844886354555e+62, error = 374800615784402790720884288648448066202662288628446400808444688.000000000000
## Iteración 165: x = 4.34183963760615e+62, 1.79844886354555e+62, 4.34183963760615e+62, error = 904848729812492735286200880860440228446048408624648242206280224.000000000000
## Iteración 166: x = -1.04821281387578e+63, -4.34183963760615e+62, -1.04821281387578e+63, error = 2184498075409388352680886424886682648246082020248468482460000002.000000000000
## Iteración 167: x = 2.53060959151218e+63, 1.04821281387578e+63, 2.53060959151218e+63, error = 5273844880631269258608208426268624060620828840244442802406860666.000000000000
## Iteración 168: x = -6.10943199690015e+63, -2.53060959151218e+63, -6.10943199690015e+63, error = 12732187836671927599284068404086046048200600668684426680420064042.000000000000
## Iteración 169: x = 1.47494735853125e+64, 6.10943199690015e+63, 1.47494735853125e+64, error = 30738220553975120072426846024240024680462826022006206686060042282.000000000000
## Iteración 170: x = -3.56083791675251e+64, -1.47494735853125e+64, -3.56083791675251e+64, error = 74208628944622175058480486064460482820244268200282688460842246406.000000000000
## Iteración 171: x = 8.59662319203628e+64, 3.56083791675251e+64, 8.59662319203628e+64, error = 179155478443219481866002228820400868068200046442022240686602442802.000000000000
## Iteración 172: x = -2.07540843008251e+65, -8.59662319203628e+64, -2.07540843008251e+65, error = 432519585831061173846840482060860006804248486848068880620442084804.000000000000
## Iteración 173: x = 5.01047917936864e+65, 2.07540843008251e+65, 5.01047917936864e+65, error = 1044194650105341782804888888402264440646282840288260800868008666228.000000000000
## Iteración 174: x = -1.20963667888198e+66, -5.01047917936864e+65, -1.20963667888198e+66, error = 2520908886041744458882048280004486044604600886602862048208248246808.000000000000
## Iteración 175: x = 2.92032127570082e+66, 1.20963667888198e+66, 2.92032127570082e+66, error = 6086012422188830887684406442066282602248422068888006682884226428222.000000000000
## Iteración 176: x = -7.05027923028362e+66, -2.92032127570082e+66, -7.05027923028362e+66, error = 14692933730419405111046046224660420284408840440606066044842886002644.000000000000
## Iteración 177: x = 1.70208797362681e+67, 7.05027923028362e+66, 1.70208797362681e+67, error = 35471879883027638116442482648688800228422646468660022686082426826002.000000000000
## Iteración 178: x = -4.10920387028198e+67, -1.70208797362681e+67, -4.10920387028198e+67, error = 85636693496474678352220824662002806246242822804046064628420260482660.000000000000
## Iteración 179: x = 9.92049571419076e+67, 4.10920387028198e+67, 9.92049571419076e+67, error = 206745266875976988842440220226068426260826202244824264246084684222646.000000000000
## Iteración 180: x = -2.39501952986635e+68, -9.92049571419076e+67, -2.39501952986635e+68, error = 499127227248428632084204646268222002062020088820460462240688460044648.000000000000
## Iteración 181: x = 5.78208863115177e+68, 2.39501952986635e+68, 5.78208863115177e+68, error = 1204999721372834253048844000402864260888202280008200604866622680066002.000000000000
## Iteración 182: x = -1.39591967921699e+69, -5.78208863115177e+68, -1.39591967921699e+69, error = 2909126669994097712600480020642022488842242644602840604484402228044668.000000000000
## Iteración 183: x = 3.37004822154916e+69, 1.39591967921699e+69, 3.37004822154916e+69, error = 7023253061361029295264486402048248880448026060808808088882864648608084.000000000000
## Iteración 184: x = -8.1360161223153e+69, -3.37004822154916e+69, -8.1360161223153e+69, error = 16955632792716157069882868604284804866680642488040606268060828640662264.000000000000
## Iteración 185: x = 1.96420804661798e+70, 8.1360161223153e+69, 1.96420804661798e+70, error = 40934518646793343432602082662644680404800880062420420228284248606862842.000000000000
## Iteración 186: x = -4.74201770546748e+70, -1.96420804661798e+70, -4.74201770546748e+70, error = 98824670086302831680644642068468806486660820206066040044800646288884200.000000000000
## Iteración 187: x = 1.14482434575529e+71, 4.74201770546748e+70, 1.14482434575529e+71, error = 238583858819398970000640606442442008888462202820826442424482424866466088.000000000000
## Iteración 188: x = -2.76385046205734e+71, -1.14482434575529e+71, -2.76385046205734e+71, error = 575992387725100820726020868442084422668242604800806022064226848288804288.000000000000
## Iteración 189: x = 6.67252526986997e+71, 2.76385046205734e+71, 6.67252526986997e+71, error = 1390568634269600856844468840860800208688646244044248424082060040444468284.000000000000
## Iteración 190: x = -1.61089010017973e+72, -6.67252526986997e+71, -1.61089010017973e+72, error = 3357129656264302338222204446644664664880866864288848028860426462042602028.000000000000
## Iteración 191: x = 3.88903272734645e+72, 1.61089010017973e+72, 3.88903272734645e+72, error = 8104827946798205532862682808462026404686420008626080080062680660646828040.000000000000
## Iteración 192: x = -9.38895555487263e+72, -3.88903272734645e+72, -9.38895555487263e+72, error = 19566785549860713402888280826480420206282420626600068862682422202480266888.000000000000
## Iteración 193: x = 2.26669438370917e+73, 9.38895555487263e+72, 2.26669438370917e+73, error = 47238399046519637054628282020864888046024822606240060886864222464440204868.000000000000
## Iteración 194: x = -5.47228432290561e+73, -2.26669438370917e+73, -5.47228432290561e+73, error = 114043583642899978080460864668848842620202026604608808422022026884026666820.000000000000
## Iteración 195: x = 1.32112630295204e+74, 5.47228432290561e+73, 1.32112630295204e+74, error = 275325566332319580666020606082680444020082208224242242006266800424288624206.000000000000
## Iteración 196: x = -3.18948103819464e+74, -1.32112630295204e+74, -3.18948103819464e+74, error = 664694716307539189608662804202424680620466862264062026446088022664648840880.000000000000
## Iteración 197: x = 7.70008837934131e+74, 3.18948103819464e+74, 7.70008837934131e+74, error = 1604714998947397809282444080668280682226864404446820226086622260264882202822.000000000000
## Iteración 198: x = -1.85896577968773e+75, -7.70008837934131e+74, -1.85896577968773e+75, error = 3874124714202335008868624468040280844642666422662866288622086266400248266226.000000000000
## Iteración 199: x = 4.48794039730958e+75, 1.85896577968773e+75, 4.48794039730958e+75, error = 9352964427352069032026684080628000686228002064062402826468028244082484424646.000000000000
## Iteración 200: x = -1.08348465743069e+76, -4.48794039730958e+75, -1.08348465743069e+76, error = 22580053568906473074620828640482686420066660284640446644248604280686402086068.000000000000
## 
## Resultado final x:
## [1] -1.083485e+76 -4.487940e+75 -1.083485e+76
## 
## Chequeando residuo (Ax-b):
##               [,1]
## [1,] -3.699248e+76
## [2,] -3.064557e+76
## [3,] -3.699248e+76

7.7.10 (4x4)

A <- matrix(c(6,-2,2,4,
              12,-8,6,10,
               3,-13,9,3,
              -6,4,1,-18),4,byrow=TRUE)
b <- c(10,20,2,-19)
cat("\n=== Ejercicio 7.7.10 (iteración cada 5) ===\n")
## 
## === Ejercicio 7.7.10 (iteración cada 5) ===
res <- jacobi(A,b, verbose=TRUE, verbose_every=5)
## Vector inicial x:
## [1] 0 0 0 0
## Iteración 5: x = 7.75834, -13.9532, 10.07948, 2.47332, error = 29.908393882430
## Iteración 10: x = -78.08359, 169.50335, -171.13522, -32.88003, error = 406.729310425842
## Iteración 15: x = 1091.02405, -2321.71419, 2290.80602, 445.87948, error = 5526.150274003239
## Iteración 20: x = -14794.14754, 31529.07871, -31154.06728, -6057.70422, error = 75081.745213566450
## Iteración 25: x = 201030.58651, -428386.33944, 423255.08136, 82305.85064, error = 1020109.844462649315
## Iteración 30: x = -2731306.98513, 5820328.58695, -5750639.95571, -1118257.64209, error = 13859879.363015273586
## Iteración 35: x = 37109347.58448, -79078796.1805, 78131940.0467, 15193384.53162, error = 188309385.522991865873
## Iteración 40: x = -504191842.4907, 1074416239.56221, -1061551647.39685, -206427252.6481, error = 2558494466.153397560120
## Iteración 45: x = 6850280136.33606, -14597721700.8379, 14422934929.2193, 2804655665.2862, error = 34761379075.429298400879
## Iteración 50: x = -93072386001.6807, 198334193954.712, -195959426568.948, -38105886108.351, error = 472290830098.602172851562
## Iteración 55: x = 1264542305681.42, -2694698069845.42, 2662432927041.98, 517731489968.127, error = 6416852096438.657226562500
## Iteración 60: x = -17180898777017.8, 36611930312406.5, -36173554980836.6, -7034238619657.53, error = 87183549210498.609375000000
## Iteración 65: x = 233430927111157, -497433629466781, 491477575514134, 95571766286421.4, error = 1184532717710287.250000000000
## Iteración 70: x = -3171545239813571, 6758458612072930, -6677535767806467, -1298500520806897, error = 16093836188503738.000000000000
## Iteración 75: x = 43090687822159720, -91824838742940368, 90725368057107648, 17642277296442052, error = 218661383843465568.000000000000
## Iteración 80: x = -585458266108784768, 1247592312706467072, -1232654184913713408, -239699517418092064, error = 2970876565681297408.000000000000
## Iteración 85: x = 7954418893699742720, -16950605087165872128, 16747645913421621248, 3256714407388520960, error = 40364271977866477568.000000000000
## Iteración 90: x = -1.08073937288453e+20, 2.30302006428485e+20, -2.27544470358474e+20, -44247851833561636864, error = 548415397369275351040.000000000000
## Iteración 95: x = 1.46836319247401e+21, -3.12903367710127e+21, 3.0915679886225e+21, 6.01180253154219e+20, error = 7451130252928133103066.000000000000
## Iteración 100: x = -1.99501426440843e+22, 4.25130979285419e+22, -4.20040645822681e+22, -8.16802809189572e+21, error = 101235928663609231544224.000000000000
## Iteración 105: x = 2.7105568537762e+23, -5.77610752069671e+23, 5.70694692118831e+23, 1.10976171555793e+23, error = 1375457535231766204348260.000000000000
## Iteración 110: x = -3.68273981225477e+24, 7.84779743568159e+24, -7.75383132207871e+24, -1.50779484529447e+24, error = 18687865624389839180800228.000000000000
## Iteración 115: x = 5.00361116051548e+25, -1.06625308429269e+26, 1.05348623355919e+26, 2.04858868676471e+25, error = 253905564257499795344622882.000000000000
## Iteración 120: x = -6.798233359393e+26, 1.44868117338827e+27, -1.43133529502831e+27, -2.78334656776251e+26, error = 3449727050518870532266808246.000000000000
## Iteración 125: x = 9.23652444727591e+27, -1.96827298607235e+28, 1.94470574131016e+28, 3.78163667813183e+27, error = 46870247833610084916208604840.000000000000
## Iteración 130: x = -1.25493461837772e+29, 2.67422440414626e+29, -2.64220440411198e+29, -5.13797891036189e+28, error = 636809840260727065380822042042.000000000000
## Iteración 135: x = 1.70503624538915e+30, -3.63337617004137e+30, 3.58987170388329e+30, 6.98079417199985e+29, error = 8652114964113639424842264840222.000000000000
## Iteración 140: x = -2.31657375254246e+31, 4.93654248781676e+31, -4.87743447489755e+31, -9.48456350678066e+30, error = 117553292395088998272028024266604.000000000000
## Iteración 145: x = 3.14744860438075e+32, -6.70710947436599e+32, 6.62680146234345e+32, 1.2886348271802e+32, error = 1597155910461361731368844244444444.000000000000
## Iteración 150: x = -4.27632951739434e+33, 9.11271757756617e+33, -9.00360586027958e+33, -1.75082355306553e+33, error = 21700004741238782982404680048606888.000000000000
## Iteración 155: x = 5.81010095474969e+34, -1.23811340736068e+35, 1.2232887758583e+35, 2.37878338324652e+34, error = 294830456241283481040844600808680600.000000000000
## Iteración 160: x = -7.89398313836026e+35, 1.68218184799235e+36, -1.6620401341007e+36, -3.23197067717193e+35, error = 4005759397934633736002024482864420808.000000000000
## Iteración 165: x = 1.07252817591361e+37, -2.28552227355909e+37, 2.2581564237956e+37, 4.39116673324124e+36, error = 54424866951363460812800886440824860840.000000000000
## Iteración 170: x = -1.45720692325614e+38, 3.10526003426381e+38, -3.06807900104557e+38, -5.96612630656574e+37, error = 739451836323682681122220844442460886860.000000000000
## Iteración 175: x = 1.9798566274278e+39, -4.21900936689639e+39, 4.16849278352245e+39, 8.10596938541261e+38, error = 10046676250602541919428664284006242684266.000000000000
## Iteración 180: x = -2.6899626968632e+40, 5.73222204953906e+40, -5.66358691557715e+40, -1.10133001383052e+40, error = 136500714077932473928082866404680860044222.000000000000
## Iteración 185: x = 3.65475924381266e+41, -7.78817176445219e+41, 7.69491958270628e+41, 1.49633898389339e+41, error = 1854587973078958409444806608262086246860486.000000000000
## Iteración 190: x = -4.9655949302978e+42, 1.05815195064692e+43, -1.04548209936463e+43, -2.03302400425062e+42, error = 25197645104811719978660422660442004800864460.000000000000
## Iteración 195: x = 6.74658202275364e+43, -1.43767444340211e+44, 1.42046035484033e+44, 2.76219937216693e+43, error = 342351685681405177024222826486404208266864264.000000000000
## Iteración 200: x = -9.16634756331461e+44, 1.9533185228718e+45, -1.9299303363485e+45, -3.75290471516676e+44, error = 4651413900044109951668626840648848620406022826.000000000000
## 
## Resultado final x:
## [1] -9.166348e+44  1.953319e+45 -1.929930e+45 -3.752905e+44
## 
## Chequeando residuo (Ax-b):
##               [,1]
## [1,] -1.476747e+46
## [2,] -4.195865e+46
## [3,] -4.663829e+46
## [4,]  1.813838e+46

Ejercicio 7.8

Por indicaciones del Profesor esta seccion no se realiza

Ejercicio 7.9- Practicas de laboratorio

Matriz

Descriminante <- function(a,b,c){
  soluciones <- b^2-4*a*c
  if (soluciones<0){
    resp <- "No hay solucion"
  } else{
    resp <- "Si hay solucion" 
  }
  respuesta <- cat(resp," ", soluciones)
  return(respuesta)
}
intento1 <- Descriminante(5,2,3)
## No hay solucion   -56
print(intento1)
## NULL
valores <- c(15, 13, 8, 3, 27, -4, -2, 10, 11)
A <- matrix(valores, nrow = 3); print(A)
##      [,1] [,2] [,3]
## [1,]   15    3   -2
## [2,]   13   27   10
## [3,]    8   -4   11
tA <- matrix(t(valores), nrow = 3); print(tA)
##      [,1] [,2] [,3]
## [1,]   15    3   -2
## [2,]   13   27   10
## [3,]    8   -4   11
valores2 <- c(15,3,-2,13,27,10,8,-4,11)
A2 <- matrix(valores2, nrow = 3); print(A2)
##      [,1] [,2] [,3]
## [1,]   15   13    8
## [2,]    3   27   -4
## [3,]   -2   10   11
b <- matrix(c(3,2,-1), nrow = 3); print(b)
##      [,1]
## [1,]    3
## [2,]    2
## [3,]   -1
Ab <- cbind(A,b); print(Ab)
##      [,1] [,2] [,3] [,4]
## [1,]   15    3   -2    3
## [2,]   13   27   10    2
## [3,]    8   -4   11   -1
bA <- cbind(b,A); print(bA)
##      [,1] [,2] [,3] [,4]
## [1,]    3   15    3   -2
## [2,]    2   13   27   10
## [3,]   -1    8   -4   11
Abt <-rbind(A,t(b)); print(Abt)
##      [,1] [,2] [,3]
## [1,]   15    3   -2
## [2,]   13   27   10
## [3,]    8   -4   11
## [4,]    3    2   -1
btA <-rbind(t(b),A); print(btA)
##      [,1] [,2] [,3]
## [1,]    3    2   -1
## [2,]   15    3   -2
## [3,]   13   27   10
## [4,]    8   -4   11
r1 <- Ab[1,]; print(r1)
## [1] 15  3 -2  3
r2 <- -Ab[2,]; print(r2)
## [1] -13 -27 -10  -2
r3 <- Ab[3,]; print(r3)
## [1]  8 -4 11 -1
c1 <- Ab[,1]; print(c1)
## [1] 15 13  8
c2 <- Ab[,2]; print(c2)
## [1]  3 27 -4
c3 <- Ab[,3];print(c3)
## [1] -2 10 11
a11 <- Ab[1,1]; print(a11)
## [1] 15
a22 <- Ab[2,2]; print(a22)
## [1] 27
a32 <- Ab[3,2]; print(a32)
## [1] -4
a23 <- Ab[2,3]; print(a23)
## [1] 10
a14 <- Ab[1,4]; print(a14)
## [1] 3

Eliminacion Gaussiana Simple

m1 <- -Ab[2,1]/Ab[1,1]; print(m1)
## [1] -0.8666667
m2 <- Ab[3,1]/Ab[1,1]; print(m2)
## [1] 0.5333333
A1 <- Ab[1,]; print(A1)
## [1] 15  3 -2  3
A2 <- m1*Ab[1,]+Ab[2,]; print(A2)
## [1]  0.00000 24.40000 11.73333 -0.60000
A3 <-m2*Ab[1,]+Ab[3,]; print(A3)
## [1] 16.000000 -2.400000  9.933333  0.600000
NuevaA <- rbind(A1, A2, A3); (NuevaA)
##    [,1] [,2]      [,3] [,4]
## A1   15  3.0 -2.000000  3.0
## A2    0 24.4 11.733333 -0.6
## A3   16 -2.4  9.933333  0.6

Raices de funciones

N <- 1000
a <- -5
b <- 5
paso <- 0.01
x <- seq(a, b, paso)
head(x,10)
##  [1] -5.00 -4.99 -4.98 -4.97 -4.96 -4.95 -4.94 -4.93 -4.92 -4.91

Graficamos la funcion \(f(x)=-x^^{3}-6x^{2}+11x-6\)

A <- 2
B <- -3
C <- -11
D <- 6

f_x <- A*x^3+B*x^2+C*x+D
head(f_x, 10)
##  [1] -264.0000 -262.3133 -260.6332 -258.9596 -257.2927 -255.6323 -253.9784
##  [8] -252.3310 -250.6902 -249.0558

Graficamos la funcion

plot(x, f_x, col ="blue",
     type ="l",
     main="Grafica de una funcion cubica",
     xlab="x",
     ylab= "f(x)")
abline(v = 0, type="-", col="gray")
## Warning in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...): el
## parámetro gráfico "type" es obsoleto
abline(h = 0, type="-", col="gray")
## Warning in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...): el
## parámetro gráfico "type" es obsoleto

Busqueda de las raiz, depues de revisar la grafica en el intervalo \([-9,-5]\)

a <- -9
b <- -5

Empezamos con el metodo de biseccion \(c=\frac{a+b}{2}\)

c <- (a+b)/2;
print(c)
## [1] -7

Definimos la funcion para evaluar nuetra cubica en los puntos de interes

f_cubica <- function(x){A*x^3+B*x^2+C*x+D}

Probemos la funcion, en R, en los putnso \(a\) y \(b\)

fa <- f_cubica(a); print(fa)
## [1] -1596
fb <- f_cubica(b); print(fb)
## [1] -264
fc <- f_cubica(c); print(fc)
## [1] -750
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1

como \(fa*fc<0\) hacemos la asignacion \(b\leftarrow c\), y cañcilamos el nuevo valor de \(c\)

b <- c
c <- (a+b)/2; print(c)
## [1] -8

Evaluamos nuevamente la cubica de en \(a,b\) y \(c\)

fa <- f_cubica(a); print(fa)
## [1] -1596
fb <- f_cubica(b); print(fb)
## [1] -750
fc <- f_cubica(c); print(fc)
## [1] -1122
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1

Como el signo fue nefatuvo para \(fb*fc<0\) y \(fa-fc>0\), entonces hacemos la asignacion \(a\leftarrow c\)

a <- c; print(c)
## [1] -8
c <- (a+b)/2; print(c)
## [1] -7.5

Evaluamos nuevamente la cubica en \(a,b\) y \(c\)

fa <- f_cubica(a); print(fa)
## [1] -1122
fb <- f_cubica(b); print(fb)
## [1] -750
fc <- f_cubica(c); print(fc)
## [1] -924
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1

Ejemplo 1

Fraficar la funcion \(f(x)=2x^{3}-3x^{2}-11x+6\) en el intervalo \(\left[-10,10\rigtht]\)

A <- 2
B <- -3
C <- -11
D <- 6
A <- 2
B <- -3
C <- -11
D <- 6


f_secante <- function(x0, x1) {
  fx0 <- A*x0^3 + B*x0^2 + C*x0 + D
  fx1 <- A*x1^3 + B*x1^2 + C*x1 + D
  
  # Fórmula del método de la secante
  x2 <- x1 - fx1 * (x1 - x0) / (fx1 - fx0)
  
  return(list(x2 = x2, fx0 = fx0, fx1 = fx1))
}
r <- f_secante(0, 3)
print(r)
## $x2
## [1] 3
## 
## $fx0
## [1] 6
## 
## $fx1
## [1] 0

Metodos Iterativos

Metodo de la secante

# Configuración inicial
knitr::opts_chunk$set(echo = TRUE)

N <- 1000
a <- -10
b <- 10
paso <- 0.01
x <- seq(a, b, paso)
head(x,10)
##  [1] -10.00  -9.99  -9.98  -9.97  -9.96  -9.95  -9.94  -9.93  -9.92  -9.91
# Graficamos la funcion f(x)=-x^3-6x^2+11x-6
A <- 2
B <- -3
C <- -11
D <- 6

f_x <- A*x^3 + B*x^2 + C*x + D
head(f_x, 10)
##  [1] -2184.000 -2177.516 -2171.045 -2164.587 -2158.141 -2151.707 -2145.286
##  [8] -2138.878 -2132.482 -2126.099
# Graficamos la función
plot(x, f_x, col ="blue",
     type ="l",
     main="Grafica de una funcion cubica",
     xlab="x",
     ylab= "f(x)")
abline(v = 0, col="gray")
abline(h = 0, col="gray")

# Busqueda de la raiz, después de revisar la grafica en el intervalo [-9,-5]
a <- -9
b <- -5

# Metodo de biseccion c=(a+b)/2
c <- (a+b)/2
print(c)
## [1] -7
# Definimos la función cúbica
f_cubica <- function(x){A*x^3 + B*x^2 + C*x + D}

# Probamos la función
fa <- f_cubica(a); print(fa)
## [1] -1596
fb <- f_cubica(b); print(fb)
## [1] -264
fc <- f_cubica(c); print(fc)
## [1] -750
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1
# Como fa*fc<0 hacemos la asignación b <- c
b <- c
c <- (a+b)/2; print(c)
## [1] -8
fa <- f_cubica(a); print(fa)
## [1] -1596
fb <- f_cubica(b); print(fb)
## [1] -750
fc <- f_cubica(c); print(fc)
## [1] -1122
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1
# Como el signo fue negativo para fb*fc<0
a <- c; print(c)
## [1] -8
c <- (a+b)/2; print(c)
## [1] -7.5
fa <- f_cubica(a); print(fa)
## [1] -1122
fb <- f_cubica(b); print(fb)
## [1] -750
fc <- f_cubica(c); print(fc)
## [1] -924
signo_fafc <- sign(fa*fc); print(signo_fafc)
## [1] 1
signo_fbfc <- sign(fb*fc); print(signo_fbfc)
## [1] 1
# Ejemplo 1
# Graficar la funcion f(x)=2x^3-3x^2-11x+6 en [-10,10]
A <- 2
B <- -3
C <- -11
D <- 6

f_secante <- function(x0, x1){
  A <- 2; B <- -3; C <- -11; D <- 6
  fx0 <- A*x0^3 + B*x0^2 + C*x0 + D
  fx1 <- A*x1^3 + B*x1^2 + C*x1 + D
  x2 <- x1 - (fx1 * (x1 - x0) / (fx1 - fx0))
  list(next_x = x2, fx0 = fx0, fx1 = fx1)
}

x0 <- 2.5
x1 <- 3.5
r <- f_secante(x0, x1)
x2 <- r$next_x; x2
## [1] 2.852941
mi_error <- abs(x2 - x1); mi_error
## [1] 0.6470588
x0 <- x1
x1 <- x2
r <- f_secante(x0, x1)
x3 <- r$next_x; x3
## [1] 2.962371
mi_error <- abs(x2 - x1); mi_error
## [1] 0
x0 <- x1
x1 <- x2
r <- f_secante(x0, x1)
x3 <- r$next_x; x3
## [1] NaN
fx3 <- A*x3^3 + B*x3^2 + C*x3 + D; fx3
## [1] NaN
mi_error <- abs(x2 - x1); mi_error
## [1] 0
x0 <- x2
x1 <- x3
r <- f_secante(x0, x1)
x4 <- r$next_x; print(x4)
## [1] NaN
fx4 <- A*x4^3 + B*x4^2 + C*x4 + D; print(fx4)
## [1] NaN
mi_error <- abs(x4 - x3); print(mi_error)
## [1] NaN
x0 <- x3
x1 <- x4
r <- f_secante(x0, x1)
x5 <- r$next_x; print(x5)
## [1] NaN
fx5 <- A*x5^3 + B*x5^2 + C*x5 + D; print(fx5)
## [1] NaN
mi_error <- abs(x4 - x3); print(mi_error)
## [1] NaN
x0 <- x4
x1 <- x5
r <- f_secante(x0, x1)
x6 <- r$next_x; print(x6)
## [1] NaN
fx6 <- A*x6^3 + B*x6^2 + C*x6 + D; print(fx6)
## [1] NaN
mi_error <- abs(x5 - x4); print(mi_error)
## [1] NaN
mi_pol <- function(x){A*x^3 + B*x^2 + C*x + D}
x0 <- 2.5; x1 <- 3.5
fx0 <- mi_pol(x0)

f_secante2 <- function(x0, x1){
  fx0 <- mi_pol(x0)
  fx1 <- mi_pol(x1)
  x2 <- x1 - (fx1 * (x1 - x0) / (fx1 - fx0))
  list(next_x = x2)
}

r <- f_secante2(x0, x1)
x2 <- r$next_x; print(x2)
## [1] 2.852941
fx2 <- mi_pol(x2)


## Discretas

### Generacion de Binominal
n1 <- 100
k <- 25
p <- 0.3

n1 = 100

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "100 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 100 VA Binom(k,p)",
     col = "orange",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n2 = 500

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "500 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 500 VA Binom(k,p)",
     col = "green",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n3 = 1000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "1,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 1,000 VA Binom(k,p)",
     col = "violet",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n4 = 5000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "5,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 5,000 VA Binom(k,p)",
     col = "brown",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n5 = 10,000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "10,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 10,000 VA Binom(k,p)",
     col = "red",
     xlab = "VA generadas",
     ylab = "N(k,p)")

Ahora variamos la p, por un valor de p=0.45

n1 <- 100
k <- 25
p <- 0.45

n1 = 100

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "100 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 100 VA Binom(k,p)",
     col = "orange",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n2 = 500

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "500 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 500 VA Binom(k,p)",
     col = "green",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n3 = 1000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "1,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 1,000 VA Binom(k,p)",
     col = "violet",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n4 = 5000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "5,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 5,000 VA Binom(k,p)",
     col = "brown",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n5 = 10,000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "10,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 10,000 VA Binom(k,p)",
     col = "red",
     xlab = "VA generadas",
     ylab = "N(k,p)")

Ahora variamos p=0.8

n1 <- 100
k <- 25
p <- 0.8

n1 = 100

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "100 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 100 VA Binom(k,p)",
     col = "orange",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n2 = 500

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "500 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 500 VA Binom(k,p)",
     col = "green",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n3 = 1000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "1,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 1,000 VA Binom(k,p)",
     col = "violet",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n4 = 5000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "5,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 5,000 VA Binom(k,p)",
     col = "brown",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n5 = 10,000

mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "10,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 10,000 VA Binom(k,p)",
     col = "red",
     xlab = "VA generadas",
     ylab = "N(k,p)")

Ahora variamos p=0.95

n1 <- 100
k <- 25
p <- 0.95

n1 = 100

n1 <- 100
k <- 25
p <- 0.95
mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "100 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 100 VA Binom(k,p)",
     col = "orange",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n2 = 500

n1 <- 100
k <- 25
p <- 0.95
mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "500 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 500 VA Binom(k,p)",
     col = "green",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n3 = 1000

n1 <- 100
k <- 25
p <- 0.95
mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "1,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 1,000 VA Binom(k,p)",
     col = "violet",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n4 = 5000

n1 <- 100
k <- 25
p <- 0.95
mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "5,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 5,000 VA Binom(k,p)",
     col = "brown",
     xlab = "VA generadas",
     ylab = "N(k,p)")

n5 = 10,000

n1 <- 100
k <- 25
p <- 0.95
mibinominal <- rbinom(n1, k, p)
plot(mibinominal, col="blue",
     main= "10,000 VA Binom(k,p)",
     xlab="Num de VA",
     ylab="N(k,p")

hist(mibinominal, main= "Histograma 10,000 VA Binom(k,p)",
     col = "red",
     xlab = "VA generadas",
     ylab = "N(k,p)")

Hay que comparar los graficos, misma n, distinta p

par(mfrow = c(1, 4))
plot(mibinominal, col="blue",
     main= "100 VA N(k,p)")
plot(mibinominal, col="green",
     main= "500 VA N(k,p)")
plot(mibinominal, col="red",
     main= "5000 VA N(k,p)")
     plot(mibinominal, col="red",
     main= "10000 VA N(k,p)")

par(mfrow = c(1, 4))
hist(mibinominal, main= "Histograma 100 VA N(k,p)",
     col = "orange")
hist(mibinominal, main= "Histograma 1,000 VA N(k,p)",
     col = "purple")
hist(mibinominal, main= "Histograma 5,000 VA N(k,p)",
     col = "green")
hist(mibinominal, main= "Histograma 10,000 VA N(k,p)",
     col = "grey")

Generacion de Poisson

n1 <- 100
milambda <- 0.75
mipoisson <- rpois(n1, milambda)
etiqueta_Y <- paste0("Poisson(",n1,",", milambda,")")
mititulo <- paste0(n1, "Va Pois(",n1,",",milambda,")")
plot(mipoisson, col = "blue",
     main= mititulo,
     xlab = "Num de VA",
     ylab = etiqueta_Y)

mititulo <- paste0("Histograma" ,n1,"VA Pois(",n1,",",milambda,")")
hist(mipoisson, main=mititulo,
     col = "lightgreen",
     xlab = "VA generadas",
     ylab = etiqueta_Y)

Inversa de una matriz

A=matrix(c(1,3,-2,1,
 1,4,-1,2,
 0,1,-1,4,
 2,6,1,2),nrow = 4,byrow = TRUE)
(A)
##      [,1] [,2] [,3] [,4]
## [1,]    1    3   -2    1
## [2,]    1    4   -1    2
## [3,]    0    1   -1    4
## [4,]    2    6    1    2
Aorig<- A
I = diag(4);(I)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1
AInv <- cbind(A,I);
(AInv)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2    1    1    0    0    0
## [2,]    1    4   -1    2    0    1    0    0
## [3,]    0    1   -1    4    0    0    1    0
## [4,]    2    6    1    2    0    0    0    1
A <- AInv
l21 <- A[2,1]/A[1,1];(l21)
## [1] 1
l31 <- A[3,1]/A[1,1];(l31)
## [1] 0
l41 <- A[4,1]/A[1,1];(l41)
## [1] 2
A[2,] <- A[2,]-l21*A[1,];
A[3,] <- A[3,]-l31*A[1,];
A[4,] <- A[4,]-l41*A[1,];
(A)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2    1    1    0    0    0
## [2,]    0    1    1    1   -1    1    0    0
## [3,]    0    1   -1    4    0    0    1    0
## [4,]    0    0    5    0   -2    0    0    1
Atmp <- A[2,]
A[2,] <- A[3,]
A[3,] <- Atmp
(A)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2    1    1    0    0    0
## [2,]    0    1   -1    4    0    0    1    0
## [3,]    0    1    1    1   -1    1    0    0
## [4,]    0    0    5    0   -2    0    0    1
l32 <- A[3,2]/A[2,2];(l32)
## [1] 1
l42 <- A[4,2]/A[2,2];(l42)
## [1] 0
A[3,] <- A[3,]-l32*A[2,];
A[4,] <- A[4,]-l42*A[2,];
(A)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2    1    1    0    0    0
## [2,]    0    1   -1    4    0    0    1    0
## [3,]    0    0    2   -3   -1    1   -1    0
## [4,]    0    0    5    0   -2    0    0    1
esc <- 1/A[3,3]
A[3,] <- esc*A[3,]
(A)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2  1.0  1.0  0.0  0.0    0
## [2,]    0    1   -1  4.0  0.0  0.0  1.0    0
## [3,]    0    0    1 -1.5 -0.5  0.5 -0.5    0
## [4,]    0    0    5  0.0 -2.0  0.0  0.0    1
l43 <- A[4,3]/A[3,3];(l43)
## [1] 5
A[4,] <- A[4,]-l43*A[3,];
(A)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    3   -2  1.0  1.0  0.0  0.0    0
## [2,]    0    1   -1  4.0  0.0  0.0  1.0    0
## [3,]    0    0    1 -1.5 -0.5  0.5 -0.5    0
## [4,]    0    0    0  7.5  0.5 -2.5  2.5    1
esc <- 1/A[4,4]
A[4,] <- esc*A[4,]
(A)
##      [,1] [,2] [,3] [,4]        [,5]       [,6]       [,7]      [,8]
## [1,]    1    3   -2  1.0  1.00000000  0.0000000  0.0000000 0.0000000
## [2,]    0    1   -1  4.0  0.00000000  0.0000000  1.0000000 0.0000000
## [3,]    0    0    1 -1.5 -0.50000000  0.5000000 -0.5000000 0.0000000
## [4,]    0    0    0  1.0  0.06666667 -0.3333333  0.3333333 0.1333333
l34 <- A[3,4]/A[4,4];(l34); A[3,] <- A[3,]-l34*A[4,]
## [1] -1.5
l24 <- A[2,4]/A[4,4];(l24); A[2,] <- A[2,]-l24*A[4,]
## [1] 4
l14 <- A[1,4]/A[4,4];(l14); A[1,] <- A[1,]-l14*A[4,]
## [1] 1
(A)
##      [,1] [,2] [,3] [,4]        [,5]       [,6]       [,7]       [,8]
## [1,]    1    3   -2    0  0.93333333  0.3333333 -0.3333333 -0.1333333
## [2,]    0    1   -1    0 -0.26666667  1.3333333 -0.3333333 -0.5333333
## [3,]    0    0    1    0 -0.40000000  0.0000000  0.0000000  0.2000000
## [4,]    0    0    0    1  0.06666667 -0.3333333  0.3333333  0.1333333
l23 <- A[2,3]/A[3,3];(l23); A[2,] <- A[2,]-l23*A[3,]
## [1] -1
l13 <- A[1,3]/A[3,3];(l13); A[1,] <- A[1,]-l13*A[3,]
## [1] -2
(A)
##      [,1] [,2] [,3] [,4]        [,5]       [,6]       [,7]       [,8]
## [1,]    1    3    0    0  0.13333333  0.3333333 -0.3333333  0.2666667
## [2,]    0    1    0    0 -0.66666667  1.3333333 -0.3333333 -0.3333333
## [3,]    0    0    1    0 -0.40000000  0.0000000  0.0000000  0.2000000
## [4,]    0    0    0    1  0.06666667 -0.3333333  0.3333333  0.1333333
l12 <- A[1,2]/A[2,2];(l12); A[1,] <- A[1,]-l12*A[2,]
## [1] 3
(A)
##      [,1] [,2] [,3] [,4]        [,5]       [,6]       [,7]       [,8]
## [1,]    1    0    0    0  2.13333333 -3.6666667  0.6666667  1.2666667
## [2,]    0    1    0    0 -0.66666667  1.3333333 -0.3333333 -0.3333333
## [3,]    0    0    1    0 -0.40000000  0.0000000  0.0000000  0.2000000
## [4,]    0    0    0    1  0.06666667 -0.3333333  0.3333333  0.1333333
AInv <- A[,5:8]; (AInv)
##             [,1]       [,2]       [,3]       [,4]
## [1,]  2.13333333 -3.6666667  0.6666667  1.2666667
## [2,] -0.66666667  1.3333333 -0.3333333 -0.3333333
## [3,] -0.40000000  0.0000000  0.0000000  0.2000000
## [4,]  0.06666667 -0.3333333  0.3333333  0.1333333
IdCalc <- Aorig%*%AInv;
(IdCalc)
##               [,1]         [,2]         [,3]          [,4]
## [1,]  1.000000e+00 1.665335e-16 5.551115e-17 -8.326673e-17
## [2,] -3.053113e-16 1.000000e+00 1.110223e-16  0.000000e+00
## [3,] -5.551115e-17 0.000000e+00 1.000000e+00  0.000000e+00
## [4,] -8.326673e-17 3.330669e-16 1.110223e-16  1.000000e+00

Factorización LU

Ejemplo 1

A=matrix(c(1,1,1,1,
 2,3,1,5,
 -1,1,-5,3,
 3,1,7,-2),byrow = TRUE,nrow = 4)
(A)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    2    3    1    5
## [3,]   -1    1   -5    3
## [4,]    3    1    7   -2
b=matrix(c(10,31,-2,18),nrow = 4)
(b)
##      [,1]
## [1,]   10
## [2,]   31
## [3,]   -2
## [4,]   18
Ab <- cbind(A,b); (Ab)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    1    1    1   10
## [2,]    2    3    1    5   31
## [3,]   -1    1   -5    3   -2
## [4,]    3    1    7   -2   18

Los pivotes se definen como \(a_{kk}^{(k)}\), luego construimos los multiplicadores: \(l_{i,k}=a_{ik}^{(k)}/a_{kk}^{(k)}\), \(l_{21}=a_{21}/a_{aa}\) y \(l_{31}=a_{31}/a_{11}\) y \(l_{41}=a_{41}/a_{11}\)

A <- Ab;
l21 <- A[2,1]/A[1,1];(l21)
## [1] 2
l31 <- A[3,1]/A[1,1];(l31)
## [1] -1
l41 <- A[4,1]/A[1,1];(l41)
## [1] 3

Construimos la matriz \(U\), donde las entradas \(a_{ij}^{(k+1)}=a_{ik}^{(k)}- l_{ik}\times a_{kj}^{(k)}\)

A[2,] <- A[2,]-l21*A[1,]; (A[2,])
## [1]  0  1 -1  3 11
A[3,] <- A[3,]-l31*A[1,]; (A[3,])
## [1]  0  2 -4  4  8
A[4,] <- A[4,]-l41*A[1,]; (A[4,])
## [1]   0  -2   4  -5 -12

Es decir la matriz resultante es:

(A)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    1    1    1   10
## [2,]    0    1   -1    3   11
## [3,]    0    2   -4    4    8
## [4,]    0   -2    4   -5  -12

entonces el pivote es \(A_{22} = 1\), calculemos los \(l_{32}\) y \(l_{42}\)

l32 <- A[3,2]/A[2,2];(l32)
## [1] 2
l42 <- A[4,2]/A[2,2];(l42)
## [1] -2

Haciendo cero debajo del pivote

A[3,] <- A[3,]-l32*A[2,];(A[3,])
## [1]   0   0  -2  -2 -14
A[4,] <- A[4,]-l42*A[2,];(A[4,])
## [1]  0  0  2  1 10

La matriz \(A\) queda de la forma:

(A)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    1    1    1   10
## [2,]    0    1   -1    3   11
## [3,]    0    0   -2   -2  -14
## [4,]    0    0    2    1   10

por tanto el pivote es \(A_{33}=-2\), y resta calcylar \(l_{43}\)

l43 <- A[4,3]/A[3,3];(l43)
## [1] -1

haciendo cero debajo del pivote

A[4,] <- A[4,]-l43*A[3,];(A[4,])
## [1]  0  0  0 -1 -4

Por lo tanto la matriz \(A\) resultante es

(A)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    1    1    1   10
## [2,]    0    1   -1    3   11
## [3,]    0    0   -2   -2  -14
## [4,]    0    0    0   -1   -4

entonces podemos construir la matriz \(L\) con los valores \(l_{ij}\) calculados en los pasos anteriores

L=diag(4);(L)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1
L[2,1] <- l21
L[3,1] <- l31
L[4,1] <- l41
L[3,2] <- l32
L[4,2] <- l42
L[4,3] <- l43
(L)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    2    1    0    0
## [3,]   -1    2    1    0
## [4,]    3   -2   -1    1
U <- A[,1:4];(U)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    0    1   -1    3
## [3,]    0    0   -2   -2
## [4,]    0    0    0   -1

Verifiquemos que efectivamente \(A=LU\)

Acalculada <- L%*%U; (Acalculada)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    2    3    1    5
## [3,]   -1    1   -5    3
## [4,]    3    1    7   -2

Ejemplo 2

Apliquemos lo desarrollado para la siguiente matriz \(A\)

A=matrix(c(4,0,1,1,
 3,1,3,1,
 0,1,2,0,
 3,2,4,1),nrow = 4,byrow = TRUE);
(A)
##      [,1] [,2] [,3] [,4]
## [1,]    4    0    1    1
## [2,]    3    1    3    1
## [3,]    0    1    2    0
## [4,]    3    2    4    1
b=matrix(c(5,6,13,1),nrow = 4);(b)
##      [,1]
## [1,]    5
## [2,]    6
## [3,]   13
## [4,]    1
Ab <- cbind(A,b)
A <- Ab;
l21 <- A[2,1]/A[1,1];(l21)
## [1] 0.75
l31 <- A[3,1]/A[1,1];(l31)
## [1] 0
l41 <- A[4,1]/A[1,1];(l41)
## [1] 0.75
A[2,] <- A[2,]-l21*A[1,]; (A[2,])
## [1] 0.00 1.00 2.25 0.25 2.25
A[3,] <- A[3,]-l31*A[1,]; (A[3,])
## [1]  0  1  2  0 13
A[4,] <- A[4,]-l41*A[1,]; (A[4,])
## [1]  0.00  2.00  3.25  0.25 -2.75
l32 <- A[3,2]/A[2,2];(l32)
## [1] 1
l42 <- A[4,2]/A[2,2];(l42)
## [1] 2
A[3,] <- A[3,]-l32*A[2,];(A[3,])
## [1]  0.00  0.00 -0.25 -0.25 10.75
A[4,] <- A[4,]-l42*A[2,];(A[4,])
## [1]  0.00  0.00 -1.25 -0.25 -7.25
l43 <- A[4,3]/A[3,3];(l43)
## [1] 5
A[4,] <- A[4,]-l43*A[3,];(A[4,])
## [1]   0   0   0   1 -61
L=diag(4);(L)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1
L[2,1] <- l21
L[3,1] <- l31
L[4,1] <- l41
L[3,2] <- l32
L[4,2] <- l42
L[4,3] <- l43;
(L)
##      [,1] [,2] [,3] [,4]
## [1,] 1.00    0    0    0
## [2,] 0.75    1    0    0
## [3,] 0.00    1    1    0
## [4,] 0.75    2    5    1
U <- A[,1:4];(U)
##      [,1] [,2]  [,3]  [,4]
## [1,]    4    0  1.00  1.00
## [2,]    0    1  2.25  0.25
## [3,]    0    0 -0.25 -0.25
## [4,]    0    0  0.00  1.00
Acalculada <- L%*%U; (Acalculada)
##      [,1] [,2] [,3] [,4]
## [1,]    4    0    1    1
## [2,]    3    1    3    1
## [3,]    0    1    2    0
## [4,]    3    2    4    1

Ejercicio

Aplicar la factorización \(LU\) a la matriz A definida por

A=matrix(c(2,3,2,4,
 4,10,-4,0,
 -3,-2,-5,-2,
 -2,4,4,-7),nrow = 4,byrow = TRUE)
(A)
##      [,1] [,2] [,3] [,4]
## [1,]    2    3    2    4
## [2,]    4   10   -4    0
## [3,]   -3   -2   -5   -2
## [4,]   -2    4    4   -7
B=matrix(c(10,31,-2,18),nrow = 4);(B)
##      [,1]
## [1,]   10
## [2,]   31
## [3,]   -2
## [4,]   18
AB <- cbind(A,B); (AB)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    2    3    2    4   10
## [2,]    4   10   -4    0   31
## [3,]   -3   -2   -5   -2   -2
## [4,]   -2    4    4   -7   18
A <- AB;
l21 <- A[2,1]/A[1,1];(l21)
## [1] 2
l31 <- A[3,1]/A[1,1];(l31)
## [1] -1.5
l41 <- A[4,1]/A[1,1];(l41)
## [1] -1
A[2,] <- A[2,]-l21*A[1,]; (A[2,])
## [1]  0  4 -8 -8 11
A[3,] <- A[3,]-l31*A[1,]; (A[3,])
## [1]  0.0  2.5 -2.0  4.0 13.0
A[4,] <- A[4,]-l41*A[1,]; (A[4,])
## [1]  0  7  6 -3 28
(A)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    2  3.0    2    4   10
## [2,]    0  4.0   -8   -8   11
## [3,]    0  2.5   -2    4   13
## [4,]    0  7.0    6   -3   28
l32 <- A[3,2]/A[2,2];(l32)
## [1] 0.625
l42 <- A[4,2]/A[2,2];(l42)
## [1] 1.75
A[3,] <- A[3,]-l32*A[2,];(A[3,])
## [1] 0.000 0.000 3.000 9.000 6.125
A[4,] <- A[4,]-l42*A[2,];(A[4,])
## [1]  0.00  0.00 20.00 11.00  8.75
(A)
##      [,1] [,2] [,3] [,4]   [,5]
## [1,]    2    3    2    4 10.000
## [2,]    0    4   -8   -8 11.000
## [3,]    0    0    3    9  6.125
## [4,]    0    0   20   11  8.750
l32 <- A[3,2]/A[2,2];(l32)
## [1] 0
l42 <- A[4,2]/A[2,2];(l42)
## [1] 0
A[3,] <- A[3,]-l32*A[2,];(A[3,])
## [1] 0.000 0.000 3.000 9.000 6.125
A[4,] <- A[4,]-l42*A[2,];(A[4,])
## [1]  0.00  0.00 20.00 11.00  8.75
(A)
##      [,1] [,2] [,3] [,4]   [,5]
## [1,]    2    3    2    4 10.000
## [2,]    0    4   -8   -8 11.000
## [3,]    0    0    3    9  6.125
## [4,]    0    0   20   11  8.750
l43 <- A[4,3]/A[3,3];(l43)
## [1] 6.666667
A[4,] <- A[4,]-l43*A[3,];(A[4,])
## [1]   0.00000   0.00000   0.00000 -49.00000 -32.08333
(A)
##      [,1] [,2] [,3] [,4]      [,5]
## [1,]    2    3    2    4  10.00000
## [2,]    0    4   -8   -8  11.00000
## [3,]    0    0    3    9   6.12500
## [4,]    0    0    0  -49 -32.08333
L=diag(4);(L)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1
L[2,1] <- l21
L[3,1] <- l31
L[4,1] <- l41
L[3,2] <- l32
L[4,2] <- l42
L[4,3] <- l43
(L)
##      [,1] [,2]     [,3] [,4]
## [1,]  1.0    0 0.000000    0
## [2,]  2.0    1 0.000000    0
## [3,] -1.5    0 1.000000    0
## [4,] -1.0    0 6.666667    1
U <- A[,1:4];(U)
##      [,1] [,2] [,3] [,4]
## [1,]    2    3    2    4
## [2,]    0    4   -8   -8
## [3,]    0    0    3    9
## [4,]    0    0    0  -49
Acalculada <- L%*%U; (Acalculada)
##      [,1] [,2] [,3] [,4]
## [1,]    2  3.0    2    4
## [2,]    4 10.0   -4    0
## [3,]   -3 -4.5    0    3
## [4,]   -2 -3.0   18    7

Notas importantes

Nota 1 Si se fija \(l_{ii}=1\) se le denomina factorizacion Doolitle. Nota 2 Una matriz \(A\) tiene factorización de Doolitle si y sólo sí se le puede aplicar el metodo de eliminación de Gauss sin pivoteo. Nota 3 Si \(U=L^{T}\) entonces la factorización se le denomina factorización de Cholesky. Nota 4 Si la matriz es simétrica y definida positiva, entonces \(A=LL^{T}\).

05-11

rm(list = ls())
x <- c(1, 2, 4)
y <- c(2, 3, 7)
A <- cbind(1, x, x^2)
a <- solve(A, y)
names(a) <- c("a0", "a1", "a2")
cat("Coeficientes del polinomio:\n")
## Coeficientes del polinomio:
print(a)
##           a0           a1           a2 
## 1.666667e+00 2.960595e-16 3.333333e-01
cat("\nEl polinomio es:\n")
## 
## El polinomio es:
cat(sprintf("P(x) = %.3f + %.3f*x + %.3f*x^2\n\n", a[1], a[2], a[3]))
## P(x) = 1.667 + 0.000*x + 0.333*x^2
P <- function(x) a[1] + a[2]*x + a[3]*x^2
valores <- P(x)
resultado <- data.frame(x, y_real = y, y_calculado = valores)
print(resultado)
##   x y_real y_calculado
## 1 1      2           2
## 2 2      3           3
## 3 4      7           7
plot(x, y, pch = 19, col = "blue",
     main = "Polinomio Interpolador Cuadrático",
     xlab = "x", ylab = "P(x)",
     xlim = c(min(x)-1, max(x)+1),
     ylim = c(min(y)-1, max(y)+2))
curve(P, from = min(x)-1, to = max(x)+1,
      add = TRUE, col = "red", lwd = 2)
legend("topleft", legend = c("Puntos dados", "Polinomio interpolador"),
       col = c("blue", "red"), pch = c(19, NA), lty = c(NA,1))

if (all(abs(y - valores) < 1e-10)) {
  cat("\n El polinomio pasa exactamente por todos los puntos.\n")
} else {
  cat("\n El polinomio no pasa exactamente por todos los puntos.\n")
}
## 
##  El polinomio pasa exactamente por todos los puntos.

Gauss-Seidel

A <- matrix(c(
  4,-1, 0, 0, 0,
 -1, 4,-1, 0, 0,
  0,-1, 4,-1, 0,
  0, 0,-1, 4,-1,
  0, 0, 0,-1, 4
), nrow = 5, byrow = TRUE)
b <- c(1,2,3,4,5)

\[ x_i^{(k+1)} = \frac{1}{a_{ii}}\left( b_i - \sum_{j<i} a_{ij} x_j^{(k+1)} - \sum_{j>i} a_{ij} x_j^{(k)} \right). \]

x <- rep(0,5)  # x^(0) = (0,0,0,0,0)
cat("x^(0) =", paste(sprintf("%.8f", x), collapse=", "), "\n")
## x^(0) = 0.00000000, 0.00000000, 0.00000000, 0.00000000, 0.00000000

Interacion 1

# ---- Iteración 1 (escrita a mano, sin bucles) ----
x_old <- x
cat("\nIteración 1\n")
## 
## Iteración 1
# Fila 1: 4 x1 - x2 = 1  -> x1 = (1 + x2_old)/4
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(1) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(1) = (1 + 0)/4 = 0.25000000
# Fila 2: -x1 + 4 x2 - x3 = 2 -> x2 = (2 + x1_new + x3_old)/4
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(1) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(1) = (2 + 0.25000000 + 0)/4 = 0.56250000
# Fila 3: -x2 + 4 x3 - x4 = 3 -> x3 = (3 + x2_new + x4_old)/4
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(1) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(1) = (3 + 0.56250000 + 0)/4 = 0.89062500
# Fila 4: -x3 + 4 x4 - x5 = 4 -> x4 = (4 + x3_new + x5_old)/4
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(1) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(1) = (4 + 0.89062500 + 0)/4 = 1.22265625
# Fila 5: -x4 + 4 x5 = 5 -> x5 = (5 + x4_new)/4
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(1) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(1) = (5 + 1.22265625)/4 = 1.55566406
# Normas para la iteración 1
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(1) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(1) = 0.25000000, 0.56250000, 0.89062500, 1.22265625, 1.55566406
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 1.55566406e+00 | ||r||_inf = 1.55566406e+00
# ---- Iteraciones 2 y 3 (misma idea, con bucle para no repetir tanto) ----
for (k in 2:3) {
  cat(sprintf("\nIteración %d\n", k))
  x_old <- x
  # Recorremos i=1..5 usando el esquema Gauss–Seidel:
  for (i in 1:5) {
    s1 <- if (i > 1) sum(A[i, 1:(i-1)] * x[1:(i-1)]) else 0   # usa x nuevo
    s2 <- if (i < 5) sum(A[i, (i+1):5] * x_old[(i+1):5]) else 0 # usa x viejo
    x[i] <- (b[i] - s1 - s2) / A[i,i]
    # Mostrar el cálculo numérico de esta componente
    cat(sprintf(
      "x%d^(%d) = (b[%d] - s1 - s2)/A[%d,%d] = (%.8f - (%.8f) - (%.8f))/4 = %.8f\n",
      i, k, i, i, i, b[i], s1, s2, x[i]
    ))
  }
  r <- b - A %*% x
  dx_inf <- max(abs(x - x_old))
  cat(sprintf("x^(%d) = %s\n", k, paste(sprintf("%.8f", x), collapse=", ")))
  cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
}
## 
## Iteración 2
## x1^(2) = (b[1] - s1 - s2)/A[1,1] = (1.00000000 - (0.00000000) - (-0.56250000))/4 = 0.39062500
## x2^(2) = (b[2] - s1 - s2)/A[2,2] = (2.00000000 - (-0.39062500) - (-0.89062500))/4 = 0.82031250
## x3^(2) = (b[3] - s1 - s2)/A[3,3] = (3.00000000 - (-0.82031250) - (-1.22265625))/4 = 1.26074219
## x4^(2) = (b[4] - s1 - s2)/A[4,4] = (4.00000000 - (-1.26074219) - (-1.55566406))/4 = 1.70410156
## x5^(2) = (b[5] - s1 - s2)/A[5,5] = (5.00000000 - (-1.70410156) - (0.00000000))/4 = 1.67602539
## x^(2) = 0.39062500, 0.82031250, 1.26074219, 1.70410156, 1.67602539
## ||dx||_inf = 4.81445312e-01 | ||r||_inf = 4.81445312e-01
## 
## Iteración 3
## x1^(3) = (b[1] - s1 - s2)/A[1,1] = (1.00000000 - (0.00000000) - (-0.82031250))/4 = 0.45507812
## x2^(3) = (b[2] - s1 - s2)/A[2,2] = (2.00000000 - (-0.45507812) - (-1.26074219))/4 = 0.92895508
## x3^(3) = (b[3] - s1 - s2)/A[3,3] = (3.00000000 - (-0.92895508) - (-1.70410156))/4 = 1.40826416
## x4^(3) = (b[4] - s1 - s2)/A[4,4] = (4.00000000 - (-1.40826416) - (-1.67602539))/4 = 1.77107239
## x5^(3) = (b[5] - s1 - s2)/A[5,5] = (5.00000000 - (-1.77107239) - (0.00000000))/4 = 1.69276810
## x^(3) = 0.45507812, 0.92895508, 1.40826416, 1.77107239, 1.69276810
## ||dx||_inf = 1.47521973e-01 | ||r||_inf = 1.47521973e-01

usando \(x^{(0)}=0\):

\[ \begin{aligned} x_1^{(1)} &= \frac{1+x_2^{(0)}}{4} = \frac{1+0}{4} = 0.25, \\ x_2^{(1)} &= \frac{2+x_1^{(1)}+x_3^{(0)}}{4} = \frac{2+0.25+0}{4} = 0.5625, \\ x_3^{(1)} &= \frac{3+x_2^{(1)}+x_4^{(0)}}{4} = \frac{3+0.5625+0}{4} = 0.890625, \\ x_4^{(1)} &= \frac{4+x_3^{(1)}+x_5^{(0)}}{4} = \frac{4+0.890625+0}{4} = 1.22265625, \\ x_5^{(1)} &= \frac{5+x_4^{(1)}}{4} = \frac{5+1.22265625}{4} = 1.5556640625. \end{aligned} \]

Iteración 2:

\[ \begin{aligned} x_1^{(2)} &= \frac{1+x_2^{(1)}}{4} = \frac{1+0.5625}{4} = 0.390625, \\ x_2^{(2)} &= \frac{2+x_1^{(2)}+x_3^{(1)}}{4} = \frac{2+0.390625+0.890625}{4} = 0.8203125, \\ x_3^{(2)} &= \frac{3+x_2^{(2)}+x_4^{(1)}}{4} = \frac{3+0.8203125+1.22265625}{4} = 1.2607421875, \\ x_4^{(2)} &= \frac{4+x_3^{(2)}+x_5^{(1)}}{4} = \frac{4+1.2607421875+1.5556640625}{4} = 1.7041015625, \\ x_5^{(2)} &= \frac{5+x_4^{(2)}}{4} = \frac{5+1.7041015625}{4} = 1.676025390625. \end{aligned} \]

Iteración 3:

\[ (x_1,\ldots,x_5)^{(3)} \approx (0.455078125,\;0.9289550781,\;1.4082641602,\;1.7710723877,\;1.6927680969). \]

Iteración 4:

\[ (x_1,\ldots,x_5)^{(4)} \approx (0.4822387695,\;0.9726257324,\;1.4359245300,\;1.7821731567,\;1.6955432892). \]

# (Opcional) Solución exacta para comparar:
x_exacta <- solve(A, b)
#cat("\nSolución exacta (solve): ", paste(sprintf(\%.8f\", x_exacta), collapse=\", \"), \"\\n\", sep=\"\")

Interacion 2

x_old <- x
cat("\nIteración 2\n")
## 
## Iteración 2
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(2) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(2) = (1 + 0.928955)/4 = 0.48223877
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(2) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(2) = (2 + 0.48223877 + 1.40826)/4 = 0.97262573
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(2) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(2) = (3 + 0.97262573 + 1.77107)/4 = 1.43592453
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(2) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(2) = (4 + 1.43592453 + 1.69277)/4 = 1.78217316
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(2) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(2) = (5 + 1.78217316)/4 = 1.69554329
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(2) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(2) = 0.48223877, 0.97262573, 1.43592453, 1.78217316, 1.69554329
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 4.36706543e-02 | ||r||_inf = 4.36706543e-02

Interacion 3

x_old <- x
cat("\nIteración 3\n")
## 
## Iteración 3
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(3) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(3) = (1 + 0.972626)/4 = 0.49315643
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(3) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(3) = (2 + 0.49315643 + 1.43592)/4 = 0.98227024
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(3) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(3) = (3 + 0.98227024 + 1.78217)/4 = 1.44111085
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(3) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(3) = (4 + 1.44111085 + 1.69554)/4 = 1.78416353
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(3) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(3) = (5 + 1.78416353)/4 = 1.69604088
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(3) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(3) = 0.49315643, 0.98227024, 1.44111085, 1.78416353, 1.69604088
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 1.09176636e-02 | ||r||_inf = 9.64450836e-03

Interacion 4

x_old <- x
cat("\nIteración 4\n")
## 
## Iteración 4
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(4) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(4) = (1 + 0.98227)/4 = 0.49556756
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(4) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(4) = (2 + 0.49556756 + 1.44111)/4 = 0.98416960
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(4) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(4) = (3 + 0.98416960 + 1.78416)/4 = 1.44208328
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(4) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(4) = (4 + 1.44208328 + 1.69604)/4 = 1.78453104
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(4) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(4) = (5 + 1.78453104)/4 = 1.69613276
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(4) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(4) = 0.49556756, 0.98416960, 1.44208328, 1.78453104, 1.69613276
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 2.41112709e-03 | ||r||_inf = 1.89936161e-03

Interacion 5

x_old <- x
cat("\nIteración 5\n")
## 
## Iteración 5
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(5) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(5) = (1 + 0.98417)/4 = 0.49604240
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(5) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(5) = (2 + 0.49604240 + 1.44208)/4 = 0.98453142
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(5) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(5) = (3 + 0.98453142 + 1.78453)/4 = 1.44226562
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(5) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(5) = (4 + 1.44226562 + 1.69613)/4 = 1.78459959
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(5) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(5) = (5 + 1.78459959)/4 = 1.69614990
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(5) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(5) = 0.49604240, 0.98453142, 1.44226562, 1.78459959, 1.69614990
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 4.74840403e-04 | ||r||_inf = 3.61818820e-04

Interacion 6

x_old <- x
cat("\nIteración 6\n")
## 
## Iteración 6
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(6) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(6) = (1 + 0.984531)/4 = 0.49613286
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(6) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(6) = (2 + 0.49613286 + 1.44227)/4 = 0.98459962
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(6) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(6) = (3 + 0.98459962 + 1.7846)/4 = 1.44229980
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(6) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(6) = (4 + 1.44229980 + 1.69615)/4 = 1.78461243
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(6) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(6) = (5 + 1.78461243)/4 = 1.69615311
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(6) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(6) = 0.49613286, 0.98459962, 1.44229980, 1.78461243, 1.69615311
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 9.04547051e-05 | ||r||_inf = 6.81965612e-05

Interacion 7

x_old <- x
cat("\nIteración 7\n")
## 
## Iteración 7
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(7) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(7) = (1 + 0.9846)/4 = 0.49614990
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(7) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(7) = (2 + 0.49614990 + 1.4423)/4 = 0.98461243
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(7) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(7) = (3 + 0.98461243 + 1.78461)/4 = 1.44230621
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(7) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(7) = (4 + 1.44230621 + 1.69615)/4 = 1.78461483
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(7) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(7) = (5 + 1.78461483)/4 = 1.69615371
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(7) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(7) = 0.49614990, 0.98461243, 1.44230621, 1.78461483, 1.69615371
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 1.70491403e-05 | ||r||_inf = 1.28090760e-05

Interacion 8

x_old <- x
cat("\nIteración 8\n")
## 
## Iteración 8
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(8) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(8) = (1 + 0.984612)/4 = 0.49615311
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(8) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(8) = (2 + 0.49615311 + 1.44231)/4 = 0.98461483
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(8) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(8) = (3 + 0.98461483 + 1.78461)/4 = 1.44230741
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(8) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(8) = (4 + 1.44230741 + 1.69615)/4 = 1.78461528
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(8) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(8) = (5 + 1.78461528)/4 = 1.69615382
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(8) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(8) = 0.49615311, 0.98461483, 1.44230741, 1.78461528, 1.69615382
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 3.20226900e-06 | ||r||_inf = 2.40309055e-06

Interacion 9

x_old <- x
cat("\nIteración 9\n")
## 
## Iteración 9
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(9) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(9) = (1 + 0.984615)/4 = 0.49615371
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(9) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(9) = (2 + 0.49615371 + 1.44231)/4 = 0.98461528
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(9) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(9) = (3 + 0.98461528 + 1.78462)/4 = 1.44230764
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(9) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(9) = (4 + 1.44230764 + 1.69615)/4 = 1.78461537
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(9) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(9) = (5 + 1.78461537)/4 = 1.69615384
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(9) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(9) = 0.49615371, 0.98461528, 1.44230764, 1.78461537, 1.69615384
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 6.00772637e-07 | ||r||_inf = 4.50666278e-07

Interacion 10

x_old <- x
cat("\nIteración 10\n")
## 
## Iteración 10
x[1] <- (b[1] + x_old[2]) / A[1,1]
cat(sprintf("x1^(10) = (1 + %g)/4 = %.8f\n", x_old[2], x[1]))
## x1^(10) = (1 + 0.984615)/4 = 0.49615382
x[2] <- (b[2] + x[1] + x_old[3]) / A[2,2]
cat(sprintf("x2^(10) = (2 + %.8f + %g)/4 = %.8f\n", x[1], x_old[3], x[2]))
## x2^(10) = (2 + 0.49615382 + 1.44231)/4 = 0.98461537
x[3] <- (b[3] + x[2] + x_old[4]) / A[3,3]
cat(sprintf("x3^(10) = (3 + %.8f + %g)/4 = %.8f\n", x[2], x_old[4], x[3]))
## x3^(10) = (3 + 0.98461537 + 1.78462)/4 = 1.44230768
x[4] <- (b[4] + x[3] + x_old[5]) / A[4,4]
cat(sprintf("x4^(10) = (4 + %.8f + %g)/4 = %.8f\n", x[3], x_old[5], x[4]))
## x4^(10) = (4 + 1.44230768 + 1.69615)/4 = 1.78461538
x[5] <- (b[5] + x[4]) / A[5,5]
cat(sprintf("x5^(10) = (5 + %.8f)/4 = %.8f\n", x[4], x[5]))
## x5^(10) = (5 + 1.78461538)/4 = 1.69615385
r <- b - A %*% x
dx_inf <- max(abs(x - x_old))
cat(sprintf("x^(10) = %s\n", paste(sprintf("%.8f", x), collapse=", ")))
## x^(10) = 0.49615382, 0.98461537, 1.44230768, 1.78461538, 1.69615385
cat(sprintf("||dx||_inf = %.8e | ||r||_inf = %.8e\n", dx_inf, max(abs(r))))
## ||dx||_inf = 1.12666569e-07 | ||r||_inf = 8.45053520e-08

Ejercicios del Portafolio a mano

knitr::include_graphics("sec7-3_ej6.jpg")

knitr::include_graphics("sec7-3_ej7.jpg")

knitr::include_graphics("sec7-3_ej7p2.jpg")

knitr::include_graphics("sec7-3_ej8.jpg")

knitr::include_graphics("sec7-3_ej8p2.jpg")

knitr::include_graphics("sec7-4_ej2.jpg")

knitr::include_graphics("sec7-4_ej2p2.jpg")

knitr::include_graphics("sec7-4_ej4.jpg")

knitr::include_graphics("sec7-4_ej4p2.jpg")

knitr::include_graphics("sec7-5_ej5.jpg")

knitr::include_graphics("sec7-5_ej5p2.jpg")

knitr::include_graphics("sec7-5_ej8.jpg")

knitr::include_graphics("sec7-5_ej8p2.jpg")

knitr::include_graphics("sec7-6_ej5.jpg")

knitr::include_graphics("sec7-6_ej8.jpg")

knitr::include_graphics("sec7-7_ej2.jpg")

knitr::include_graphics("sec7-7_ej7.jpg")